Interactive flight status display

ABSTRACT

An application engine receives flight position data associated with an airplane through a global computing network. The flight position data includes a list of recorded locations of the airplane. Using the list of recorded locations of the airplane, the application engine computes a current position of the airplane and a polling interval. Responsive to calculating the current position of the airplane, the application engine generates a flight status view of the airplane based on the current position of the airplane. The flight status view includes a flight tracker image representative of the airplane&#39;s current location and flight path, and one or more visual indicators corresponding to social network data and informative data associated with the current position of the airplane. The application engine periodically updates the flight status view of the airplane using an updated current position of the airplane.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims priority to U.S. Provisional Patent ApplicationNo. 61/919,860 filed on Dec. 23, 2013 and entitled “Flight Tracker withSocial and Geographic Information and Images,” the entire contents ofwhich are hereby incorporated herein by reference.

FIELD OF THE INVENTION

Embodiments of this disclosure relate generally to display systemsassociated with airplanes, and more particularly to an interactiveflight status display associated with an airplane.

BACKGROUND

Often, in-flight entertainment systems are provided onboard an airplanefor entertainment of the passengers during the flight. In-flightentertainment systems are known to provide traditional flight trackerdisplays that show a map of an area above which the airplane is flyingalong with the current position of the flight. Even though thetraditional flight tracker displays provide some information, it lacksinteractivity. That is, the passengers are provided only limited abilityto interact with the map, such as controlling a zoom of the map, withoutoffering an opportunity for the passengers to learn anything about thelocation over which the airplane is currently flying. Furthermore,traditional flight tracker displays fail to provide the passengers withthe opportunity to connect to social network platforms and share dataduring the flight.

Conventional in-flight entertainment systems may offer in-flightentertainment through hardware that is native to airplane, such as aseat back display screen and/or a cabin based drop down display screenthrough which in-flight entertainment services content may be deliveredthe passengers. However, conventional in-flight entertainment systemsmay lack the flexibility to allow passengers to enjoy the benefits ofthe in-flight entertainment services utilizing their personal computingdevices. With a growing use of personal computing devices, everypassenger may carry his/her own personal computing devices onboard theairplane and may prefer to access in-flight entertainment servicesthrough their personal computing devices rather than the conventionalseat-based in-flight entertainment system and cabin based in-flightentertainment system. Providing in-flight entertainment services (e.g.,rendering interactive flight maps) through the user's personal computingdevice while onboard an airplane that is in-flight may be quitechallenging considering the network bandwidth constraints of theairplane, and the memory and processing constraints of the user'spersonal computing device.

Therefore, on the basis of the above-discussion, there is a need for atechnology that provides an interactive and content rich display in alow bandwidth environment.

SUMMARY

The present disclosure addresses the above-mentioned shortcomings byproviding an interactive flight status display that is accessible by auser both onboard the airplane and on the ground through the user'spersonal computing device.

In an example embodiment, a user access the interactive flight statusdisplay through the user's personal computing device. In particular,based on a location, the user's computing device connects to theInternet either through an in-flight Internet service system, such asGoGo Inflight Internet®, or a ground Internet service system. Once theInternet connectivity is established, the user's personal computingdevice communicates with one or more terrestrial servers via theInternet to transmit and receive data that is used to render theinteractive flight status display.

Specifically, the user's personal computing device generates andtransmits a flight locate request to a terrestrial server, such as aflight status server. Upon receiving the flight locate request, theflight status server transmits the flight locate request to a groundstation server that periodically receives and stores a near real-timelocation of the airplane, an altitude of the airplane, and/or a speed ofthe airplane. Alternatively, the user's personal computing device cantransmit the flight locate request directly to the ground stationserver. In some embodiment, the flight status server may receive andstore a near real-time location of the airplane, an altitude of theairplane, and/or a speed of the airplane, instead of the ground stationserver. The terrestrial server(s) (e.g., flight status server or thirdparty server, such as ground station server) may receive the nearreal-time location of the airplane, the altitude of the airplane, andthe speed of the airplane from an airplane tracking system that isonboard the airplane. In one example, the onboard tracking system may bea digital datalink system for transmission of short messages betweenaircraft and ground stations via airband radio or satellite, such as anAircraft Communications Addressing and Reporting System (ACARS). Thatis, the airplane may periodically record and transmit its location,speed, and altitude to a server on the ground via cellular towers orsatellites.

Responsive to receiving the flight locate request, the ground stationserver or the flight status server may transmit flight position data tothe user's personal computing device via the Internet. The flightposition data includes, inter alia, a list of recorded locations,altitude, and speed of the airplane along with a timestamprepresentative of time at which the each location, altitude, and speedof the airplane was recorded. Using the flight position data, the user'spersonal computing device calculates the current position of theairplane, a flight path of the airplane, and a polling interval thatdetermines a rate at which a flight status view is updated.

Once the current position of the airplane is calculated, the user'spersonal computing device generates and transmits a map request to a mapservice system, such as Google Maps®, via the terrestrial flight statusserver. Alternatively, the user's personal computing device can transmitthe flight locate request directly to the map service system. The maprequest includes at least the calculated current position of theairplane. Upon receiving the map request, the map service system maytransmit map data associated with a terrestrial area corresponding tothe calculated current position of the airplane. The map data may berepresentative of map images of the terrestrial area over which theairplane is flying corresponding to the current position of theairplane.

In addition to generating and transmitting a map request, once thecurrent position of the airplane is calculated, the user's personalcomputing device generates and transmits, either directly or through theterrestrial flight status server, a content request to a plurality ofsocial network systems and one or more web information sources. Thecontent request includes at least the calculated current position and aset of filter parameters. On the basis of the calculated currentposition of the airplane and the filter parameters, the social networksystems and/or the web information sources may transmit social networkdata and/or informative data to the user's personal computing device.The filter parameters may limit the number of data points and the typeof data points included in the social network data and the informativedata. For example, the filter parameter may include a limit on thenumber of Wikipedia® articles, limit on the type of articles, a distancelimit around the current position, and so on.

Upon receiving the map data, social network data, and/or the informativedata, the user's personal computing device processes the received dataand renders a flight status view based on the received data. Therendered flight status view includes graphical representation of a mapof an area over which the airplane is flying, a flight path of theairplane, a current position, and direction of the airplane, flightstatistics information, and a flight progress bar with a slider that iscontrollable by the user. Further, the rendered flight status viewincludes one or more visual indicators representative of social networkdata and informative data associated with the current position of theairplane, where the visual indicators are selectable to display contentrelated to the social network data and informative data. On the basis ofwhether the user's personal computing device is connected to theInternet via the in-flight Internet service system or the groundInternet service system, the rendered flight status view may or may notinclude an option to share and/or post in-flight experiences, flightstatus information, and/or any other appropriate information on one ormore social network platforms.

Once an initial flight status view is rendered, the user's personalcomputing device generates and transmits subsequent flight locaterequests based on the calculated polling interval. Responsive to thesubsequent flight locate request, the user's personal computing devicereceives the last recorded location, altitude, and speed of the airplaneinstead of the list of recorded locations, altitudes, and speeds of theairplane. A location of the airplane that is recorded subsequent to therecording of the calculated current location of the airplane is set asthe updated current location of the airplane. Further, an updatedcurrent direction of the airplane is determined. Using the updatecurrent location and direction of the airplane, the flight status viewassociated with the airplane is updated. The step of generatingsubsequent flight locate request and updating the flight status viewassociated with the airplane using updated current position of theairplane is repeated throughout the journey of the airplane, e.g., tillthe airplane reaches its destination.

In light of the above discussion, it is apparent that the interactiveflight status display described herein enhances user experience,increases interactivity, and offers improvements over conventionalflight displays by providing: a) enhanced immersive representation ofthe in-flight experience while operating within the limited bandwidthconstraints of the in-flight Internet service system of the airplane,and limited processing power and storage capability of the user'spersonal computing device, b) interactive display that is rich incontent and includes both generally informative content and content thatis customized to the user, c) social network features, and d) universalaccessibility using personal computing devices both in-flight and on theground.

These and other aspects, features, and embodiments of the presentinvention may be more clearly understood and appreciated from a reviewof the following detailed description of the disclosed embodiments andby reference to the drawings and claims.

BRIEF DESCRIPTION OF THE FIGURES

Example embodiments are illustrated by way of example and not limitationin the figures of the accompanying drawings, in which:

FIG. 1 illustrates an operational environment associated with theinteractive flight status display in accordance with an exampleembodiment;

FIG. 2 illustrates a block diagram of the application engine associatedwith the personal computing device in accordance with an exampleembodiment;

FIG. 3 is a flowchart that illustrates an example method associated withthe application engine in accordance with an example embodiment;

FIG. 4 is a flowchart that illustrates an example method of generatingand presenting the interactive flight status display based on datareceived via an in-flight Internet service system in accordance with anexample embodiment;

FIGS. 5A and 5B (collectively ‘FIG. 5’) are flowcharts that illustratean example method associated with the generation of the flight statusview based on data received via an in-flight Internet service system inaccordance with an example embodiment;

FIG. 6 is a flowchart that illustrates a process of updating the flightstatus view that generated based on data received via an in-flightInternet service system in accordance with an example embodiment inaccordance with an example embodiment;

FIG. 7 is a flowchart that illustrates an example method of generatingand presenting the interactive flight status display based on datareceived via a ground Internet service system in accordance with anexample embodiment;

FIGS. 8A and 8B (collectively ‘FIG. 8’) are flowcharts that illustratean example method associated with the generation of the flight statusview based on data received via a ground Internet service system inaccordance with an example embodiment;

FIG. 9 is a flowchart that illustrates a process of updating the flightstatus view that generated based on data received via a ground Internetservice system in accordance with an example embodiment in accordancewith an example embodiment;

FIG. 10 is a flowchart that illustrates an example method of calculatinga current position of the airplane and polling interval in accordancewith an example embodiment;

FIG. 11 is a flowchart that illustrates an example method of rendering amap view for the interactive flight status display in accordance with anexample embodiment;

FIG. 12 is a flowchart that illustrates an example method of sharingdata on a social network platform via the interactive flight statusdisplay in accordance with an example embodiment;

FIG. 13 is a flowchart that illustrates a process associated with aflight progress slider bar of the interactive flight status display inaccordance with an example embodiment; and

FIGS. 14A-14E (collectively ‘FIG. 14’) illustrate example flight statusviews presented to a user in accordance with an example embodiment.

Many aspects of the disclosure can be better understood with referenceto the above drawings. The elements and features in the drawings are notnecessarily to scale; emphasis is instead being placed upon clearlyillustrating the principles of example embodiments of the presentdisclosure. Moreover, certain dimensions may be exaggerated to helpvisually convey such principles. In the drawings, reference numeralsdesignate like or corresponding, but not necessarily identical, elementsthroughout the several views.

DETAILED DESCRIPTION OF EXAMPLE EMBODIMENTS

Disclosed are a system, apparatus, and method for an interactive flightstatus display. Before discussing the embodiments directed to thesystem, apparatus, and method for the interactive flight status display,it may assist the reader to understand the various terms used herein byway of a general description of the terms in the following paragraphs.

The term ‘flight locate request,’ as used herein may generally refer toany appropriate computer generated message that requests for dataassociated with a flight and/or operation of an airplane. In oneexample, the flight locate request may take the form of an applicationprogramming interface (API) call, such as a flight locate API callspecific to an airline server (Delta server, SouthWest server, etc) or aground station server (airport server).

The term ‘flight position data,’ as used herein may generally refer toany appropriate data associated with the flight of the airplane. In oneexample embodiment, flight position data may refer to any appropriatedata that is exchanged between a ground control system and the airplane.In another example embodiment, the flight position data may refer to anyappropriate data associated with the navigation, guidance, and controlof the airplane. Example flight position data can include, but is notlimited to, one or more recorded locations of the airplane, an altitudeof the airplane, a speed of the airplane (ground speed), and so on. Eachdata element of the flight position data is time stamped. The time stampindicates a time at which each data element is recorded by the airplane.Alternatively, the time stamp may indicate a time at which each dataelement is received and stored by a storage system on the ground.

The term ‘recorded location of the airplane,’ as used herein maygenerally refer to a location of the airplane recorded in near real-timeby any appropriate flight data recording equipment onboard the airplane.In addition to recording the location, the equipment may also record analtitude and speed of the airplane. In one example embodiment, anonboard tracking system of the airplane, such as ACARS system onboardthe airplane automatically records the location of the airplane, thealtitude of the airplane, and the speed of the airplane at pre-definedintervals. Further, the data recorded by the onboard tracking system istransmitted to one or more storage systems (databases or storageservers) on the ground either via cellular towers or via satellite.Alternatively, in another example embodiment, a user (e.g., pilot) mayhave to manually enter the location, altitude, and speed of the airplaneinto a system that keeps records of the airplane flight details.

In one embodiment, the term ‘position of an airplane,’ may generallyrefer to a location and a direction of the airplane. In anotherembodiment, the term ‘position of the airplane,’ may refer to only thelocation of the airplane without the direction. In one exampleembodiment, the location of the airplane may be expressed using latitudeand longitude values. However, one of ordinary skill in the art canunderstand and appreciate that location may be expressed using any otherappropriate values.

The term ‘flight path,’ as used herein may generally refer to anyappropriate path followed by an airplane through space as a function oftime when the airplane is in-flight. In other words, the flight pathrefers to a route of the airplane. Each route may be between at leasttwo points, that is, a point of departure (departure airport) and apoint of arrival (arrival airport).

The term ‘area corresponding to current position of the airplane,’ asused herein may refer to a terrestrial area corresponding to the currentposition of the airplane. In other words, the area associated with thecurrent position of the airplane may refer to a terrestrial area overwhich the airplane is flying corresponding to the current position ofthe airplane. For example, the current position of the airplane includeslocation expressed using latitudes and longitude values. In saidexample, the latitude and longitude values of the airplane maycorrespond to latitude and longitude values associated with SanFrancisco indicating that the airplane is currently flying over SanFrancisco. Accordingly, the area associated with the current position ofthe airplane in the said example may refer to a terrestrial area thatincludes San Francisco and/or surroundings of San Francisco, e.g., BayArea, Napa Valley, etc. In another example, the terrestrial area mayinclude a water body, such as oceans, seas, etc.

The term ‘polling interval,’ as used herein may generally refer to timedifference between subsequent recordings of an airplane's flightposition data, i.e., location, altitude, and/or speed. The pollinginterval may represent a time interval at which a subsequent flightlocate request is to be generated after an initial flight locaterequest. In other words, the polling interval determines the rate atwhich the flight status view and/or the current position of the airplaneare updated. For example, if the polling interval is 2 minutes, then, anupdated current position of the airplane that is determined every 2minutes, and responsively the flight status view is updated every 2minutes using the updated current position. The current position of anairplane changes with time when the airplane is in-flight.

The term ‘content request,’ as used herein may generally refer to anyappropriate computer generated message that requests for data associatedwith a social network system and/or data associated with any appropriateinformation source. For example, content request may be a Facebook® API,Wikipedia® API, etc., that requests for data from Facebook®, Wikipedia®,and so on.

The term ‘social network data,’ as used herein may generally refer toany appropriate data associated a social network system. Example socialnetwork systems may include, but are not limited to, Facebook®,Twitter®, Foursquare®, Instagram®, Pinterest®, Google Plus®, etc.Example social network data may include, but is not limited to,locations and landmarks that a user's social network friend likes or hasvisited (e.g., Facebook® check-in); a location of residence of theuser's social network friend; locations mentioned on messages posted orshared on the user's or the user's friends' social network profiles(e.g., Facebook® posts and/or shares, Twitter® feeds, etc.); a userprofile and/or a hyperlink to a user profile, any appropriate messages,events, activities, articles, videos, and/or images and/or hyperlinksassociated with messages, events, activities, articles, videos, and/orimages posted or shared on user's or the user's friends' social networkprofiles.

The term ‘informative data,’ as used herein may generally refer to anyappropriate proprietary and publically available information. In someembodiments, the informative data may include hyperlinks to anyappropriate proprietary and publically available information. In oneexample, informative data may include data and/or hyperlinks to datathat is curated and customized by an airline or a third party, such asDelta Embark articles, Southwest curated articles, and so on. In anotherexample, informative data may include data and/or hyperlinks to datathat is publically available through any appropriate informationsources, such as messages, articles, videos, and/or images fromWikipedia®, Wikilocation®, Panoramio®, Google®, News websites, Travelwebsites, and so on. In yet another example, informative data mayinclude data and/or hyperlinks to data associated with events andactivities, such as upcoming sports events, dining reservations,restaurant information, parties, taxi services, hotels, stage shows,etc. In another example, informative data may include data and/orhyperlinks to data associated with partner members of an airline, suchas Delta Skymile partners. In another example, informative data mayinclude advertisements and/or hyperlinks to advertisements. In yetanother example, informative data may include data and/or hyperlinks todata associated with shopping. One of ordinary skill in the art canunderstand and appreciate that example informative data included aboveis not limiting, and any other appropriate proprietary and publicallyavailable information is not outside the scope of this description.

The term ‘visual indicator,’ as used herein may generally refer to anyappropriate graphically presented indicator that is computer generatedand presented on a computer display. Further, the term ‘geo-code,’ asused herein generally refers to geographic coordinates.

The term ‘map request,’ as used herein may generally refer to anyappropriate computer generated message that requests for data associatedwith a map of an area. The term ‘map data,’ as used herein may generallyrefer to any appropriate data that represents or is associated with amap of a terrestrial area. The terrestrial area can include land bodyand/or water body (e.g., oceans, seas, etc.). In one example, map datamay include map tiles that may be used to generate a map image. Further,maps can be of different variety, such as terrain maps, satellite maps,street maps, geological maps, weather pattern map, and so on.

The term ‘global computing network,’ as used herein may generally referto the Internet or any appropriate global network equivalent to theInternet. The term ‘in-flight Internet service system,’ as used hereinmay generally refer to any appropriate system that provides in-flightbroadband Internet service and other related network connectivityservices on board an airplane. One example in-flight Internet servicesystem is GoGo Inflight Internet®. While the airplane is in-flight,passengers can use their personal computing devices to access theInternet by connecting to the in-flight Internet service system over awireless and/or wired link. In particular, the in-flight Internetservice system may include a gateway device, such as a router thatconnects the personal computing device of the passenger to the Internet.Similarly, the term ‘ground Internet service system,’ as used herein maygenerally refer to any appropriate system on the ground that connectsthe user to the Internet.

The term ‘personal computing device,’ as used herein may generally referto any appropriate portable computing device. Example personal computingdevices may include, but are not limited to, laptops, smartphones,tablets, pocket PC's, personal digital assistant (PDA), and so on. Insome embodiments, a personal computing device can include stationarycomputing devices such as desktops, and so on, without departing from abroader scope of this description.

An example interactive flight status display system includes anapplication engine that runs on a user's personal computing device thatmay be connected to the Internet either through an in-flight Internetservice system or a ground Internet service system. The applicationengine receives a flight position data associated with an airplanethrough the Internet. Responsive to receiving the flight position data,the application engine computes a current position of the airplane and apolling interval based on the flight position data. Once the currentposition of the airplane is calculated, the application engine generatesa flight status view based on the calculated current position of theairplane. The generated flight status view is presented to the user viaa display of the user's personal computing device. Further, the flightstatus view is periodically updated based on the updated currentposition of the airplane till a pre-determined condition is met, e.g.,airplane reaches its destination. The rate at which the flight statusview is updated depends on the polling interval.

In particular, the flight status view of an airplane graphicallypresents, among other things, a map of an area over which the airplaneis flying at any given moment, a flight path of the airplane, a currentposition and direction of the airplane, flight statistics information,and a flight progress bar with a slider that is controllable by theuser. The slider may be used to view a past position, a currentposition, and/or a future position of the airplane that is in-flight.The flight status view also provides the ability to zoom and or pan themap.

Further, the flight status view graphically presents social network dataand informative data associated with the area over which the airplane isflying at any given moment. The social network data and the informativedata are represented using visual indicators positioned on the map atlocations corresponding to the geo-code data associated with the socialnetwork data and the informative data. The visual indicators areselectable to display content related to the social network data andinformative data. The social network data may include data from one ormore social network platforms, such as Facebook®, Twitter®, Pinterest®,and so on; and the informative data may include data from one or morepublic information sources, such as Wikipedia®, Panoramio®, Google®,etc., and one or more proprietary information sources, such as airlinedata sources. In addition to presenting social network data from the oneor more social network platforms, the flight status view provides theuser the ability to share and/or post in-flight experiences, flightstatus information, and/or any other appropriate information on one ormore social network platforms. In some embodiments, in addition tosharing and posting, the flight status view may provide features to sendmessages to and receive messages from other passengers on board theairplane or other user's on a social network platform. Messages can besent and/or received via the social media platform, or through acustomized messaging platform.

As described above, a flight status view presented to a user onboard anairplane that is in-flight may differ from the flight status viewpresented to a user on the ground. In particular, one of more featuresavailable in the flight status view provided to a user onboard anairplane may not be included in the flight status view presented to auser on the ground. For example, one or more visual indicatorsrepresentative of informative data, and the ability to share or postdata on social network platforms may not be available in the flightstatus view presented to a user on the ground.

Technology associated with the interactive flight status display willnow be described in greater detail with reference to FIGS. 1-14, whichdescribe representative embodiments of the system, method, and apparatusfor interactive flights status display. It will be appreciated that thevarious embodiments discussed herein need not necessarily belong to thesame group of example embodiments, and may be grouped into various otherembodiments not explicitly disclosed herein. First, FIG. 1 will bediscussed in the context of describing a representative operatingenvironment associated with the interactive flights status displayaccording to certain example embodiments. Then, FIGS. 2-13 will bediscussed, making exemplary references to FIG. 1 and FIG. 14 as may beappropriate or helpful.

In the following description, for purposes of explanation, numerousspecific details are set forth in order to provide a thoroughunderstanding of the various embodiments. Further, the system, method,and apparatus for interactive flight status display may be embodied inmany different forms and should not be construed as limited to theembodiments set forth herein; rather, these embodiments are provided sothat this disclosure will be thorough and complete, and will fullyconvey the scope of the invention to those having ordinary skill in theart. Furthermore, all “examples” or “exemplary embodiments” given hereinare intended to be non-limiting and among others supported byrepresentations of the present invention.

Turning to FIG. 1, this figure illustrates an operational environmentassociated with the interactive flight status display in accordance withan example embodiment. In particular, FIG. 1 illustrates an airplane102, an in-flight Internet service system 104, a plurality of usersonboard the airplane 108 a-b (herein ‘passengers’), a plurality of userdevices 106 a-d (herein interchangeably used as ‘personal computingdevice’), an application engine 101 associated with the personalcomputing device 106, an onboard tracking system 107, a satellite orcellular tower 109, Internet 110, a ground system 112, a flight statusserver 120, a ground Internet service system 114, a map service system122, a social network service system 124, and an information source 126.

As illustrated in FIG. 1, the operating environment 100 associated withthe interactive flight status display may include one or more systems onthe ground, such as the ground system 112, the map service system 122,the social network service system 124, and the information source 126.Each of the systems on the ground (112, 122, 124, and 126) may includeone or more computing devices and their corresponding storage devices,e.g., servers and databases that handle the operations of the respectivesystem. Each of the systems on the ground (112, 122, 124, and 126) maybe communicatively coupled to the Internet 110 over a wired or wirelessnetwork, thus providing each system a web presence. In other words, eachsystem may be accessible via the Internet 110.

In one example embodiment, the ground system 112 may be associated withan airline associated with the airplane 102. For example, if theairplane 102 is associated with Delta airlines, then, the ground system112 may be a Delta airline ground system 112. Alternatively, the groundsystem 112 may be associated with another third party that stores datarelated to an airplane's flight, guidance, control, and/or navigation.As illustrated in FIG. 1, the ground system 112 may include a flightstatus server 120 that may be configured to receive and store flightposition data associated with the airplane 102 that is later used forgenerating the interactive flight status display. Alternatively, theflight position data may be stored in another server, such as a groundstation server or an air traffic control server. In the embodiment wherethe flight position data is stored in another server, the flight statusserver 120 may be configured to retrieve the flight position data fromthe other server upon receiving a request for the flight position data.The flight position data may include, but is not limited to, a location,an altitude, and/or a speed of the airplane. In particular, an onboardtracking system 107 of the airplane 102 may be configured toperiodically record flight position data associated with the airplane102 while the airplane 102 is in flight. The recorded data may betransmitted through one or more satellites or cellular towers 109 to aserver or a database on the ground, such as the flight status server 120of the ground system 112. In some embodiments, a pilot or a crew of theairplane may have to manually record/enter the data for transmission tothe ground system 112. In either case, responsive to receiving theflight position data, the flight status server 120 may store therecorded data.

In addition to receiving and storing the flight position data, theflight status server 102 may be configured to receive flight locaterequests, decode the flight locate requests, and transmit requestedflight position data requested by the flight locate request. Even thoughthe flight status server 120 is described in the context of handlingflight position data, one of ordinary skill in the art can understandand appreciate that the flight status server 102 can store and handleany other appropriate data, such as information about one or morelocations, loyalty points, rewards, and so on, without departing fromthe broader scope of this disclosure.

One of the other systems on the ground is the map service system 122illustrated in FIG. 1. The map service system 122 may include anyappropriate system that is associated with a web mapping service. Webmapping may refer to a process of using maps delivered by geographicalinformation systems (GIS) over the Internet. Example map service systemsmay include, but are not limited to, Google Maps service, Yahoo Mapsservice, Mapquest map service, WikiMapia, and so on.

Another system on the ground is the social network system 124illustrated in FIG. 1. The social network service system may include anyappropriate system that facilitates social networking and/or offerssocial networking services. Example social network service systems thatare known worldwide may include, but are not limited to, as Facebook,Google Plus, YouTube, LinkedIn, Instagram, Pinterest, Vine, Tumblr, andTwitter. However, there may be other social network service systems thatmay be local and customized to specific countries, such as Nexopia,Badoo, Bebo, Myspace, Xanga, Hi5, Orkut, Friendster, and so on.

In addition to the social network service system 124, FIG. 1 illustratesone or more information sources 126. An information source 126 mayinclude any appropriate system that provides proprietary and/or publicinformation. The information source 126 may have a web presence. Inother words, the information source 126 may accessible over theInternet. In one example, the information source 126 may include a websource or a database that provides magazine articles, such as theNational Geographic website, Time magazine website, Sports Illustratedwebsite, Travel websites, and so on. In another example, the informationsource 126 may include a web source or a database that providesnewspaper articles or academic journal articles. In yet another example,the information source 126 may include a web encyclopedia, such asWikipedia®. In another example, the information source 126 may include aweb source or a database that provides data from image mashup servicesor video services, such as Panoramio®, Youtube®, and so on. In oneexample embodiment, even the flight status server 120 may be identifiedas an information source 126. One of ordinary skill in the art canunderstand and appreciate that the examples of the information sourcesprovided above are not limiting, and any other type of informationsource is not outside the scope of this disclosure.

In addition to the one or more systems on the ground, the operatingenvironment 100 may include one or more components aboard an airplane102. In the example embodiment illustrated in FIG. 1, the airplane 102may include one or more passengers 108 a,b. Each passenger 108 a,b mayhave one or more of their own personal computing devices 106 a-c thatmay be connected to the Internet 110 via the in-flight Internet servicesystem 104. Further, each personal computing device 106 may include anapplication engine 101 that may be implemented as software, speciallydesigned hardware, or a combination of software and hardware.

The application engine 101 may be configured to generate and present aninteractive flight status display to the passenger 108 via an outputmedium of the personal computing device 106. The interactive flightstatus display may be generated based on data received from one or moresystems on the ground, such as flight status server 120, the map servicesystem 122, the social network service system 124, and the informationsources 126. In particular, the personal computing device 106 of thepassenger 108 may be communicatively coupled to the computing devices ofthe one or more systems on the ground (112, 122, 124, and 126) via theInternet 110. Accordingly, using the personal computing device 106, theapplication engine 101 communicates with the computing devicesassociated with the one or more systems on the ground via the Internet110 to receive appropriate data for generating the interactive flightstatus display.

Similar to the passengers 108 a,b onboard the airplane 102, a user 118on the ground may also have a personal computing device 106 d, asillustrated in FIG. 1. The personal computing device 106 d of the user118 on the ground may be connected to the Internet via a ground Internetservice system 114. Further, the personal computing device 106 d of theuser 118 on the ground may include an application engine 101 that isconfigured to generate and present an interactive flight status displayassociated with the airplane 102 to the user 118 on the ground via anoutput medium of the personal computing device 106 d. However, theinteractive flight status display presented to a passenger 108 on boardan airplane 102 that is in-flight may differ from the interactive flightstatus display presented to a user 118 on the ground. In particular, theinteractive flight status display presented to the user 118 on theground may not include one or more features available in the interactiveflight status display presented to the passenger 108 onboard theairplane 102, e.g., sharing or posting data on social networkingwebsites.

Architecture of the application engine 101 associated with the personalcomputing device 106 will be described below in greater detail inassociation with FIG. 2. Turning to FIG. 2, this figure illustrates ablock diagram of the application engine associated with the personalcomputing device, in accordance with an example embodiment. Inparticular, FIG. 2 illustrates that a personal computing device 106includes a memory 220, a processor 222, an input/output engine 238, andan application engine 101. Further, the application engine 101 includesa request generation engine 202, a location and bearing calculationengine 204 (herein ‘position engine’), a polling engine 206, a flightpath engine 208, an airplane modeling engine 210, a map display engine212, a flight statistics engine 214, a social network services engine216, a content retrieval engine 218, a visual indicator engine 224, aprogress slider engine 226, a destination pin engine 228, a graphicsrendering engine 230, and a user device and network determination engine232.

In one embodiment, the processor 222 of the personal computing device106 may be a multi-core processor. In another embodiment, the processor222 may be a combination of multiple single core processors. Further,the processor 222 may be coupled to a memory 220 of the personalcomputing device 106. The memory 220 may be non-transitory storagemedium, in one embodiment, and a transitory medium in anotherembodiment. The memory 220 may include instructions that may be executedby the processor 222 to perform operations of the personal computingdevice 106 and the application engine 101. In other words, operationsassociated with personal computing device 106 and the different enginesof the application engine 101 may be executed using the processor 222.

In addition to the memory 220 and the processor 222, the personalcomputing device 106 may include an input/output engine 238 that isconfigured to enable communication to and from the personal computingdevice 106. In particular, the input/output engine 238 may be configuredto receive input from the one or more systems on the ground, i.e., theground system 112, the map service system 122, the social networkservice system 124, and the information source 126. In addition, theinput/output engine 238 may be configured to receive a user inputresulting from a user's interaction with the personal computing device106. In response to receiving the input from the one or more systems onthe ground and/or the user input, the personal computing device 106and/or the application engine 101 may generate one or more outputs. Theinput/output engine 238 may be configured to either present thegenerated output to the user (108, 118) via a display medium (not shownin Figure) of the personal computing device 106 or transmit thegenerated output for other operations.

Although not shown in FIG. 2, the personal computing device 106 mayinclude a data communications engine that is configured to connect thepersonal computing device 106 to a network, such as the Internet 110. Inparticular, the data communications engine may be configured to connectthe personal computing device 106 to an Internet service system, such asthe in-flight Internet service system 104 or the ground Internet servicesystem 114, which in turn connects the personal computing device 106 tothe Internet 110.

In one example embodiment, a user (108, 118) may switch on the user'spersonal computing device 106 and express intent to view an interactiveflight status display associated with an airplane 102 that is in-flight.Responsively, the application engine 101 may receive a request togenerate the interactive flight status display associated with theairplane 102. The application engine may forward the request to the userdevice and network determination engine 232.

In response to receiving the request to present the interactive flightstatus display, the user device and network determination engine 232 maybe configured to communicate with: a) the processor 222 of the personalcomputing device 106 to determine one or more technical specificationsof the personal computing device 106, and b) the data communicationengine of the personal computing device 106 to determine whether thepersonal computing device 106 is connected to the Internet via anin-flight Internet service system 104 or a ground Internet servicesystem 114.

In an example embodiment, the technical specification of the personalcomputing device 106 may determine the resolution and complexity of theimages rendered in association with the interactive flight statusdisplay. For example, if the technical specifications of the personalcomputing device 106 do not meet a set of requirements for athree-dimensional map display, a two dimensional map image may berendered instead of a three dimensional map image. One of ordinary skillin the art can understand and appreciate that complexity and resolutionare only example characteristics and are not limiting. In other words,any other characteristic of the interactive flight status display may bemodified based on the technical specifications of the personal computingdevice 106.

Further, in an example embodiment, a determination of the Internetservice system through which the personal computer device 106 isconnected to the Internet may further determine the features that aremade available to a user (108, 118) through the interactive flightstatus display. For example, if the personal computing device 106 isconnected to Internet via the ground Internet service system 114, theinteractive flights status display presented to the user (108, 118) maynot include an option to share and/or post messages to one or moresocial network platforms. One of ordinary skill in the art canunderstand and appreciate that the examples provided above are notlimiting, and any other appropriate feature may be added or deletedbased on the presence of Internet connectivity and the type of Internetconnectivity without departing from a broader scope of this disclosure.For example, if the personal computing device 106 is not connected toInternet, flight tracking features, social network features, and otherappropriate features may not be available to the user (108, 118).

Responsive to determining the technical specifications and the Internetconnectivity details of the personal computing device 106, the userdevice and network determination engine 232 may forward the requestassociated with generating the interactive flight status display to therequest generation engine 202. In response, the request generationengine 202 may be configured to generate a flight locate request. Theflight locate request may include at least a flight identifier thatidentifies the airplane 102 for which the interactive flight statusdisplay is to be generated. Once the flight locate request is generated,the request generation engine 202 communicates the flight locate requestto the data communication engine of the personal computing device 106with a destination address to which flight locate request is to betransmitted. Responsive to receiving the flight locate request and thedestination address, the data communication engine of the personalcomputing device 106 transmits the flight locate request to the flightstatus server 120.

Upon receiving the flight locate request, the flight status server 120may decode the flight locate request and retrieve the flight identifierto identify the airplane 102. Responsive to identifying the airplane102, the flight status server 120 may transmit flight position dataassociated with the identified airplane 102 to the personal computingdevice 106.

In one example embodiment, the flight position data that is transmittedto the personal computing device 106 may vary based on a type or timestamp of the flight locate request. For example, if the flight locaterequest is an initial flight locate request for the airplane 102, theflight position data may include a list of all recorded locations,altitudes, and speeds of airplane 102 from the departure of the airplane102 till the time the initial flight locate request is received.Alternatively, if the flight locate request is a subsequent flightlocate request for airplane 102, i.e., a flight locate request forairplane 102 that arrived after the initial flight locate request forairplane 102, the flight position data may only include the lastrecorded location, altitude, and speed of airplane 102. In anotherexample embodiment, the flight locate request may instruct the flightstatus server 120 regarding the data elements that are to be included inthe flight position data. Alternatively, the flight locate request mayinclude another identifier that indicates if the flight locate requestis an initial request or a subsequent request. In either case, once theflight locate request is received, the flight status server 120transmits flight position data to the personal computing device 102.

The input/output engine 238 of the personal computing device 106 mayreceive the flight position data. Further, the input/output engine 238may store the flight position data in the memory 220 of the personalcomputing device 106. Once the flight position data is stored in thememory 220, the input/output engine 238 may transmit the flight positiondata to the position engine 204 and the polling engine 206.

Upon receiving the flight position data, the position engine 204 and thepolling engine 206 may be configured to calculate a current position ofthe airplane 102 and/or a polling interval, respectively. In particular,the position engine 204 may be configured to calculate a currentlocation and a current direction of the airplane 102, and a pollingengine 206 may be configured to calculate the polling interval. In oneexample, the current location of the airplane 102 may be represented asgeographic coordinate values, e.g., latitude and longitude values.

Responsive to calculating the current position of the airplane 102, theposition engine 204 transmits the calculated current position of theairplane 102 to the map display engine 212, the social network serviceengine 216, and the content retrieval engine 218.

Responsive to receiving the current position of the airplane 102, themap display engine 212 may operate in conjunction with the requestgeneration engine 202 to generate a map request. The map requestincludes at least the calculated current location of the airplane. Insome embodiments, the map request may also include dimension parameterssuch as a form factor of a display medium of the personal computingdevice 106, zoom parameters (zoom in or zoom out), and/or altitude atwhich the airplane 102 is flying. Once the map request is generated, themap display engine 216 communicates the map request to the datacommunication engine of the personal computing device 106 with adestination address to which map request is to be transmitted.Responsive to receiving the map request and the destination address, thedata communication engine of the personal computing device 106 transmitsthe map request to the map service system 122.

Upon receiving the map request, the map service system 122 may decodethe map request to retrieve the current location and/or the dimensionparameters. Responsively, using the current location of the airplane 102and/or the dimension parameters, the map service system 122 may retrievemap data associated with a terrestrial area corresponding to thecalculated current position of the airplane 102. The map data mayrepresent a map image of the terrestrial area over which the airplane102 is flying at its calculated current location. The map image may beterrain view image, a street view image, a satellite view image, or anyother appropriate view. Further, the dimensions of the terrestrial areafor which a map image is retrieved may be determined based on thedimension parameters included in the map request. For example, the mapservice system 122 may determine the longitude and latitude values thatrepresent the current location of the airplane 102. In said example, thelongitude and latitude values may be X and Y. Responsive to determiningthe longitude and latitude values, the map service system 122 determinesa terrestrial location that substantially matches with the longitude andlatitude values that represent the current location of the airplane 102.In said example, the coordinates X, Y may substantially match thecoordinates of San Francisco. Further, the dimension parameters mayinclude a form factor of the personal computing device 106 and anindication that a user (108, 118) has requested a zoomed in view.Accordingly, the map service system 122 may retrieve a map image of SanFrancisco without the neighboring locations. However, if the dimensionspecifications indicated that a user (108, 118) requested a zoomed outview, the map service system 122 may have retrieved a map image of SanFrancisco and its surrounding locations, e.g., Bay Area, Napa Valley,and so on. Similarly, a map image for a larger area may be retrieved fora device having a larger form factor as compared to a device having asmaller form factor. In addition, dimensions of the area for which mapimage is retrieved may vary based on the altitude at which the airplaneis flying. Furthermore, the type of map image (e.g., terrain view,satellite view, two dimensional map image, three dimensional map image,etc.) that is to be included in the map data may depend on the availablenetwork bandwidth and the technical specification of the personalcomputing device 106 (e.g., processing power). In a preferredembodiment, a two-dimensional terrain map view may be used in light ofthe limited network bandwidth environment onboard the airplane 102.

As described above, in addition to transmitting the calculated currentposition of the airplane 102 to the map display engine 212, the positionengine 204 also transmits the calculated current location to the socialnetwork service engine 216 and the content retrieval engine 218.Responsive to receiving the current position of the airplane 102, thesocial network service engine 216 and the content retrieval engine 218may be configured to generate a content request. The content request mayinclude at least the calculated current location of the airplane, and aset of filter parameters. The set of filter parameters may include, butare not limited to a number of data elements that are to be returned inresponse to the content request, type of data that is be returned, and adistance limit associated with the current location of the airplane 102.For example, a content request generated by the content retrieval engine218 may request for Wikipedia articles related to landmarks in an areaabove which the airplane 102 is flying. The content request may includethe longitude and latitude values that represent the current location ofthe airplane 102, the number of articles that are to be returned, andradius value indicating that only articles related to landmarks locatedwithin the radius value should be returned. In said example, assume thatthe longitude and latitude values that represent the current location ofthe airplane 102 correspond to the longitude and latitude values ofMidtown, Atlanta; and the content request includes an article limit of10, and a distance limit of 15 miles. In said example, in response tothe content request only 10 articles that are related to landmarkswithin a 15 mile radius of Midtown, Atlanta will be returned. Similar ordifferent filter parameters may be used for content request generated bythe social network service engine 216.

In either case, once the content request is generated, the socialnetwork service engine 216 and the content retrieval engine 218 maycommunicate their respective content request to the data communicationengine of the personal computing device 106 with a destination addressto which content request is to be transmitted. The destination addressmay vary based on whether the content request is generated by the socialnetwork service engine 216 or the content retrieval engine 218. That is,content request generated by the social network service engine 216 maybe addressed to the social network service system 124, and the contentrequest generated by the content retrieval engine 218 may be addressedto the one or more information sources 126. Responsive to receiving thecontent request and the destination address, the data communicationengine of the personal computing device 106 transmits the contentrequest to the social network service system 124 and/or the one or moreinformation sources 126.

Upon receiving the content request, the social network service system124 may decode the content request to retrieve the current location andset of filter parameters. Further, using the current location of theairplane 102 and the set of filter parameters, the social networkservice system 124 may retrieve the requested social network data. In anexample embodiment, the social network data may include one or more dataelements and/or a geographic coordinate associated with each dataelement. The data elements may include content snippet, full content,and/or a hyperlink to the content. For example, if the airplane isflying over Atlanta, based on the content request, the social networkdata may include a list of the user's Twitter friends that live in andaround a 10 miles radius Atlanta. Further, the social network data mayinclude a geographic coordinate that represent the location of eachTwitter friend. Furthermore, the social network data may include atleast a portion of the tweets associated with each Twitter friend and/ora hyperlink to the tweets and the friend's user profile. In anotherexample, if the airplane is flying over Houston, based on the contentrequest, the social network data may include a list of restaurants inand around a 15 mile radius of Houston that the user's Facebook friendshave visited and checked-in using Facebook®. Further, the social networkdata may include a geographic coordinate that represent the location ofeach restaurant in the list of restaurants. Furthermore, the socialnetwork data may include at least a portion of the names, reviews, andinformation associated with the restaurants or corresponding hyperlinks.One of ordinary skill in the art can understand and appreciate that theexamples of social network data provided above is for explanatorypurposes, and is not limiting. In other words, some of the data elementsmay be deleted and others new data elements may be added withoutdeparting from a broader scope of this disclosure.

Similar to the social network service system 124, upon receiving thecontent request, the one or more information sources 126 may decode thecontent request to retrieve the current location and set of filterparameters. Further, using the current location of the airplane 102 andthe set of filter parameters, the one or more information sources 126may retrieve the requested informative data. In an example embodiment,the social network data may include one or more data elements and/or ageographic coordinate associated with each data element. The dataelements may include content and/or hyperlinks to the content.

The social network service system 124 and the one or more informationsources 126 may transmit the social network data and informative data tothe personal computing device 106 over the Internet 110, respectively.Furthermore, in response to the map request, the map service system 122may transmit the map data to the personal computing device 106 over theInternet 110.

The input/output engine 238 of the personal computing device 106 mayreceive the map data, social network data, and/or the informative data.Further, the input/output engine 238 may communicates with the processor222 to store the map data, social network data, and/or the informativedata in the memory 220 of the personal computing device 106. In someembodiments, the map data, social network data, and/or the informativedata may not be stored in the memory 220. In either case, upon receivingthe map data, social network data, and/or the informative data, theinput/output engine 238 may transmit the map data, social network data,and/or the informative data to the graphics rendering engine 230. Inaddition to the map data, social network data, and/or the informativedata, the graphics rendering engine 230 may also receive the flightposition data and the calculated current position of the airplane 102from the position engine 204.

Responsive to receiving the calculated current position of the airplane102, map data, social network data, informative data, and/or flightposition data, the graphics rendering engine 230 may be configured togenerate a flight status view for display to the user (108, 118) via adisplay medium of the personal computing device 106.

In particular, using the map data, the graphics rendering engine 230 mayrender a map image of the terrestrial area corresponding to the currentlocation of the airplane 102. In some embodiment, the graphics renderingengine 230 may apply coordinate transformation to the map data to rendera three-dimensional map image, provided the technical specifications ofthe personal computing device 106 meets one or more requirement set bythe application engine 101. Further, the graphics rendering engine 230may transmit the flight position data and the calculated currentposition of the airplane 102 to the flight path engine 208. Using thecalculated current position of the airplane 102 and the list of previousrecorded locations of the airplane 102, the flight path engine 208 maybe configured to calculate the flight path of the airplane 102. Then,the flight path engine 208 operates in concert with the he graphicsrendering engine 230 to render a flight path image within the map image.Furthermore, the graphics rendering engine 230 operates in concert withthe airplane modeling engine 210 to render a two-dimensional orthree-dimensional airplane image in the map image to indicate a currentlocation and direction of the airplane. Additionally, the graphicsrendering engine 230 and the airplane modeling engine 210 operate inconcert to generate an image representative of a shadow of the airplane102 on the map image. The image representative of a shadow of theairplane 102 may be placed at a location on the map that corresponds toa terrestrial location over which the airplane is flying. In someembodiments, the shadow image may be offset from the location on the mapthat corresponds to a terrestrial location over which the airplane isflying. One of ordinary skill in the art can understand and appreciatethat any other markers may be used to indicate a current location anddirection of the airplane without departing from a broader scope of thisdisclosure. Further, one of ordinary skill in the art can understand andappreciate that in some embodiment, the shadow image may be omittedwithout departing from a broader scope of this disclosure.

In an example embodiment, the graphics rendering engine 230 may filterthe received social network data and informative data to remove datathat includes any terms that are blacklisted by the application engine101. Responsive to filtering the social network data and informativedata to remove blacklisted content, the graphics rendering engine 230may transmit the received social network data and informative data tothe visual indicator engine 224 and/or the destination pin engine 228.Further, in conjunction with the visual indicator engine 223 and thedestination pin engine 228, the graphics rendering engine 230 may beconfigured to render a visual indicator for each data element in thereceived social network data and informative data. Each of the renderedvisual indicators may be located in the map image at a locationcorresponding to the geographic coordinates associated with therespective data element. Further, each visual indicator may beselectable to display content associated with the respective socialnetwork data and informative data that they represent. Furthermore, thevisual indicators may vary based on the data that they represent. Forexample, Facebook related data may be represented using a Facebookspecific visual indicator. Similarly, Twitter and Wikipedia related datamay be represented using Twitter and Wikipedia specific visualindicators. In said example, a user (108, 118) may be allowed to clickon each of the Facebook, Twitter, and Wikipedia specific indicatorsusing an input medium of the personal computing device 106. Each visualindicator may be associated with a hyperlink. Accordingly, uponclicking, the user (108, 118) may be transferred to a web siterepresented by a hyperlink. The website may provide additional data.Alternatively, snippets of data may be cached in the personal computingdevice 106. Accordingly, when a user (108, 118) scrolls over the visualindicator, a portion of data may be displayed within the map image alongwith a hyperlink that can be followed to access the data in itsentirety. In said example, if a user (108, 118) clicks on the Facebookvisual indicator that represents the location of a friend, the user(108, 118) may be transferred to the Facebook server and the friend'sFacebook user profile page may be presented within the flight statusview using a pop-up window. Alternatively, the user (108, 118) may betaken away from the flight status view to a new window. In anotherexample, when the user (108, 118) clicks on the Facebook visualindicator that represents the location of a friend, the user (108, 118)may be presented with the friend's name and a hyperlink to the friend'sFacebook user profile page. Further, the pop-up generation may varybased on the data that is being shown. For example, a Twitter pop-up maydiffer from a Facebook pop-up. Another example visual indicator mayinclude a destination pin that represents data that is curated andcustomized by an airline associated with the airplane 102.

The graphics rendering engine 230 also operates in concert with theprogress slider engine 226 to render an image of a progress bar with aslider. The progress bar may indicate a percentage of travel completedby the airplane 102. Further, the slider may be configured to respond toa user input. In other words the slider may be user controllable to viewone or more past positions of the airplane 102 or future positions ofthe airplane 102. Furthermore, the graphics rendering engine operates inconcert with the flight statistics engine 214 to render an image thattextually represents the current position, the current direction, andother details associated with the flight, such as flight identifiernumber, destination port and so on.

In addition, the graphics rendering engine 230 may also be configured torender one or more images that are selectable for posting and/or sharingdata on a social network platform. Further, the graphics renderingengine 230 may also generate any other images the result from aselection of the option to post and/or share data on the social networkplatform.

Once the flight status view is generated using the current position ofthe airplane 102, the polling engine 206 may be configured to operate inconjunction with the request generation engine 202 to generate asubsequent flight locate request. Further, the polling engine 206operates in concert with the position engine 206 to compute an updatecurrent location. Further, using the updated current location, theapplication engine 101 updates the flight status view. The updateoperation is periodically repeated till the airplane 102 completes itscurrent flight.

Even though FIG. 2 illustrates the application engine 101 as a componentimplemented in the personal computing device 106, one of ordinary skillin the art can understand and appreciate that the application engine canbe implemented as a server system on the ground without departing from abroader scope of this description. In one example, if the applicationengine 101 is implemented as a server system on the ground, theapplication engine 101 may perform all the operations mentioned above orshare some operations with a corresponding client component to render aflight status view. Further, the rendered flight status view may betransmitted to a client component residing on a computing device fordisplay.

The operations of the application engine to generate and present theinteractive flight status display is described below in greater detailin association with FIGS. 3-13. As described above, FIGS. 3-13 will beexplained by making exemplary reference to FIGS. 1, 2, and 14 as may beappropriate or helpful. Accordingly, turning now to FIGS. 3-13, thesefigures include flow charts that illustrate the process of theapplication engine for generating and presenting the interactive flightstatus display. Although specific operations are disclosed in theflowcharts illustrated in FIGS. 3-13, such operations are exemplary.That is, embodiments of the present invention are well suited toperforming various other operations or variations of the operationsrecited in the flowcharts. It is appreciated that the operations in theflowcharts illustrated in FIGS. 3-9 may be performed in an orderdifferent than presented, and that not all of the operations in theflowcharts may be performed.

All, or a portion of, the embodiments described by the flowchartsillustrated in FIGS. 3-13 can be implemented using computer-readable andcomputer-executable instructions which reside, for example, incomputer-usable media of a computer system or like device. As describedabove, certain processes and operations of the present invention arerealized, in one embodiment, as a series of instructions (e.g., softwareprograms) that reside within computer readable memory of a computersystem and are executed by the processor of the computer system. Whenexecuted, the instructions cause the computer system to implement thefunctionality of the interactive flight status display system asdescribed below.

Turning to FIG. 3, this figure is a flowchart that illustrates anexample method associated with the application engine in accordance withan example embodiment. The method begins in operation 302 where a user(108, 118) switches on the user's personal computing device 106.Responsive to switching on the personal computing device 106, inoperation 304, the application engine 101 determines one or moretechnical specifications associated with the personal computing device106. Further, in operation 304, the application engine 101 may check ifthe technical specifications associated with the personal computingdevice 106 meets a set of requirements for presenting the interactiveflight status display. If the technical specifications of the personalcomputing device meet the display requirements, the application engine101 proceeds to operation 306. However, in one example embodiment, ifthe technical specifications of the personal computing device 106 do notmeet the set of requirements, prior to proceeding to operation 306, theapplication engine 101 may generate an alert message for display to theuser (108, 118). The alert message may indicate that the technicalspecifications of the personal computing device 106 do not meet thedisplay requirements and therefore, the interactive flight statusdisplay cannot be presented or the interactive flight status display ofdifferent quality may be presented. Alternatively, the applicationengine 101 may proceed to operation 306 without generating the alert.

In operation 306, the application engine 101 may determine whether atrip identifier (e.g., Passenger Name Record (PNR), or any other similaridentifiers) is available on the personal computing device 106. Forexample, the user (108, 118) may have booked a flight using the personalcomputing device 106 and the trip identifier associated with the flightmay be stored in the memory 220 of the personal computing device 106.Alternatively, if the user (108, 118) is logged in as a member, inoperation 306, the application engine 101 may determine whether the tripidentifier is available based on the user credentials. For example, ifthe user logs in as a SkyMiles member (by Delta), then, the tripidentifier may be accessible via the user's SkyMiles credentials. One ofordinary skill in the art can understand that the methods describedabove for retrieving a trip identifier are not limiting, and any otherappropriate method can be used for identifying the trip identifierwithout departing from the broader scope of this description. Further,one of ordinary skill in the art can also understand and appreciate thatit may not be necessary for a user to be logged in as a member to accessthe interactive flight status display of an airplane 102. In otherwords, a user that is logged in as guest may also access the interactiveflight status display.

In operation 306, if a trip identifier is available, the applicationengine 101 proceeds to operation 308. In operation 308, the applicationengine 101 may retrieve a travel itinerary from the trip identifier.Then, based on the travel itinerary, the application engine 101 mayidentify the airplane 102 for which the interactive flight statusdisplay is to be generated. Responsive to identifying the airplane 102for which the interactive flights status display is to be generated, inoperation 310, the application engine 101 may determine if the personalcomputing device 106 is connected to the Internet 110 via an in-flightInternet service system 104 or a ground Internet service system 114. Ifthe personal computing device 106 is connected to the Internet via thein-flight Internet service system 104, the application engine 101proceeds to operation 312 where the application engine 101 may generateand present an interactive flight status display 1400 a (shown in FIG.14A) for the airplane 102 identified by the trip identifier based ondata received over the Internet 110 via the in-flight Internet servicesystem 104. Alternatively, if the personal computing device 106 isconnected to the Internet via the ground Internet service system 114,the application engine 101 proceeds to operation 314 where theapplication engine 101 may generate and present an interactive flightstatus display 1400 b (shown in FIG. 14D) for the airplane 102identified by the trip identifier based on data received over theInternet 110 via the ground Internet service system 114.

Returning to operation 306, if a trip identifier is not available, theapplication engine 101 proceeds to operation 316. In operation 316, theapplication engine 101 may prompt the user to search for an airplane 102using one of a flight number and a departure/arrival location pair.Responsive to the search initiated by the user (108, 118), in operation318, the application engine 101 presents the user (108,118) with a listof candidate airplanes that match the search criteria. The list mayinclude a flight number and/or the departure/arrival location pair.Further, in operation 318, the application engine 101 prompts the user(108, 118) to select a candidate airplane for which the user (108, 118)desires to view an interactive flight status display. Responsive to theprompt, in operation 320, the application engine 101 receives a userinput identifying the airplane 102 selected by the user (108, 118) forwhich an interactive flight status display is to be generated. In oneexample embodiment, only airplanes that are in-flight may be madeselectable. Various methods may be used to indicate flights that arein-flight, such as a status identifier, color coding, disablinghyperlink, highlights, etc. In another example embodiment, all airplanesin the search result may be made selectable, and the determination ofwhether the airplane is in-flight may be made after the selection of theairplane. If the airplane is not in-flight, the application engine 101may generate and present a message to the user (108,118) indicating thatan interactive flight status display cannot be generated for theselected airplane. In some embodiments, the interactive flight statusdisplay may be generated for airplanes that are on the ground (taxiing,in hangar, etc.) with or without modifications.

Assuming that in operation 310, the airplane 102 selected by the user(108, 118) is in-flight, the application engine 101 proceeds fromoperation 320 to operation 322 where the application engine 101 maydetermine if the personal computing device 106 is connected to theInternet via an in-flight Internet service system 104 or a groundInternet service system 114. If the personal computing device 106 isconnected to the Internet via the in-flight Internet service system 104,the application engine 101 proceeds to operation 326 where theapplication engine 101 may generate and present an interactive flightstatus display 1400 a (shown in FIG. 14A) for the user selected airplane102 based on data received over the Internet 110 via the in-flightInternet service system 104. Alternatively, if the personal computingdevice 106 is connected to the Internet via the ground Internet servicesystem 114, the application engine 101 proceeds to operation 324 wherethe application engine 101 may generate and present an interactiveflight status display 1400 b (shown in FIG. 14D) for the user selectedairplane 102 based on data received over the Internet 110 via the groundInternet service system 114.

Operations 312 and 326 associated with a generation and presentation ofthe interactive flight status display based on data received over theInternet 110 via the in-flight Internet service system 104 may bedescribed in greater detail in association with FIG. 4. Similarly, theoperations 314 and 324 associated with a generation and presentation ofthe interactive flight status display based on data received over theInternet 110 via the ground Internet service system 104 may be describedin greater detail in association with FIG. 7.

Turning to FIG. 4, this figure is a flowchart that illustrates anexample method of generating and presenting the interactive flightstatus display based on data received via an in-flight Internet servicesystem in accordance with an example embodiment. In operation 402, therequest generation engine 202 may generate a flight locate request forthe airplane 102. The flight locate request includes at least a flightidentifier to identify the airplane 102. In some embodiments, the flightlocate request may also include an instruction indicating the type ofdata that should be returned in response to the flight locate request,an identifier that indicates if the flight locate request is an initialflight locate request or a subsequent flight locate request, and/or atime stamp indicating the time the flight locate request is generated.Further, in operation 402, the request generation engine 202 operates inconjunction with the data communication engine of the personal computingdevice 106 to transmit the flight locate request to a ground system 112,i.e., flight status server 120. The flight locate request may betransmitted over the Internet 110 via the in-flight Internet servicesystem 104.

Responsive to receiving the flight locate request, the flight statusserver 120 may retrieve flight position data associated with theairplane 102 based on the flight identifier, the data instruction,and/or the initial request indicator. In some embodiments, the flightlocate request may not include the data instruction and/or the initialrequest indicator, in which case, the flight status server 120 may beconfigured to identify an initial flight locate request based on a timeof arrival of the flight locate request and a search for previous flightlocate requests from a departure time of the airplane. In either case,once the flight position data is retrieved, the flight status server 120transmits the flight position data to the personal computing device 106over the Internet 110.

In operation 404, the input/output engine 238 of the personal computingdevice 106 may receive and store the flight position data in a memory220 of the personal computing device 106. The flight position data maybe received over the Internet 110 via the in-flight Internet servicesystem 104. The flight position data may include a list of recordedlocations, altitudes, and speeds of the airplane 102 from a time ofdeparture of the airplane till a time of the flight locate request. Forexample, if a departure time of the flight is 9:10 am and the time atwhich the flight locate request is generated is 10:00 am, the flightposition data may include a list of locations, altitudes, and speeds ofthe airplane 102 that have been recorded between 9:10 am and 10:00 am.Further, the flight position data also includes a timestamp associatedwith each recorded location, altitude, and speed of the airplane 102.The timestamp indicates a time at which each of the locations,altitudes, and speeds in the list were recorded. Further, in operation404, the input/output engine 238 forwards the flight position data tothe position engine 204 and the polling engine 206.

Responsive to receiving the flight position data, in operation 406, theposition engine 204 may compute the current position of the airplane,and the polling engine 206 may compute the polling interval that isassociated with an update operation (e.g., updating the currentposition). In one embodiment, the current position of the airplane maybe computed using the list of recorded locations included in the flightposition data. In another embodiment, the current position may becalculated using other data, such as a planned path, an elapsedin-flight time along the planned path, and/or a remaining flight timealong the planned path. Operation 406 will be described below in greaterdetail in association with FIG. 10.

Turning to FIG. 10, this figure is a flowchart that illustrates anexample method of calculating a current position of the airplane andpolling interval in accordance with an example embodiment. In operation1002, the position engine 204 may operate in conjunction with theprocessor of the personal computing device 106 to calculate a timedifference between the recording of each subsequent data elements pairin the list of recorded locations, altitudes, and speeds of the airplane102. Then, in operation 1004, the position engine 204 may calculate asum of the time differences. Further, in operation 1006, the positionengine may calculate an average time difference by dividing the sum ofthe time differences calculated in operation 1004 with a total number ofsubsequent data pairs in the list of recorded locations, altitudes, andspeeds of the airplane 102. Responsive to calculating the average timedifference, in operation 1008, the position engine 204 may operate inconcert with the polling engine 206 to set the average time differencecalculated in operation 1006 as the polling interval.

Once the polling interval is set, in operation 1010, the position engine204 may select a recorded location from the list of recorded locationsother than the latest recorded location. Then, in operation 1012, theselected location may be set as the current location of the airplane102. Further, in operation 1014, the position engine 204 may determine acurrent direction of the airplane based on the current location of theairplane 102 and the latest recorded location of the airplane.Furthermore, in operation 1014, the position engine 204 may determinethe flight path of the airplane 102 based on the list of recordedlocations of the airplane 102. One of ordinary skill in the art canunderstand and appreciate that the position engine 204 may use anyappropriate mathematical and/geometric calculation/models/methods todetermine the current location, direction, and flight path of theairplane 102 without departing from a broader scope of this disclosure.

In one example, the flight position data may be represented as ‘X’.Assuming that the departure time of the airplane 102 is 10:00 am and thetime of the flight locate request is 10:30 am, the flight position dataX may include a list of recorded locations of the airplane from 10:00 amto 10:30 am. The list of recorded locations of the airplane 102 may berepresented as ‘x(1), x(2), . . . , x(n−2), x (n−1), x(n),’ where x(1)represents the first recorded location and x(n) represents the latestrecorded location. Further, a time of recording (time stamp) may berepresented as ‘T_x(1), . . . , T_x(n),’ where T_x(1) is the timeassociated with the recording of location x(1) and T_x(n) is the timeassociated with the recording of location x(n). Assuming that fiverecorded locations represented by x(1), x(2), x(3), x(4), and x(5) arerecorded between 10.00 am and 10:30 am, in operation 1002, the positionengine 202 may calculate a time difference between the time of recordingof subsequent location pairs, i.e., [T_x(1), T_x(2)], [T_x(2), T_x(3)],[T_x(3), T_x(4)], and [T_x(4), T_x(5)]. Further, the position engine 204calculates a sum of the time differences and divides it by the totalnumber of location pairs. The result of the division may provide anaverage time difference between subsequent recordings of the location ofthe airplane 102. The average time difference is then set as the pollinginterval. The polling interval may be mathematically expressed asfollows:

$\begin{matrix}{{{Polling}\mspace{14mu}{Interval}} = \frac{{\sum\limits_{i = 1}^{n - 1}T_{x{({i + 1})}}} - T_{x{(i)}}}{n - 1}} & (1)\end{matrix}$

In Equation 1, ‘n’ represents the number of recorded data elements, x(n)represents the latest recorded data element, and x(1) represents thefirst recorded data element. The average time interval may indicate howoften the location, altitude, and/or speed of the airplane 102 arerecorded. In the above mentioned example, if the average time intervalbetween the recording of subsequent locations is two minutes, then thepolling interval is set as two minutes. The polling interval maydetermine a rate at which the current position of the airplane 102and/or the interactive flight status display is updated.

In said example, once the polling interval is calculated, the positionengine 204 selects a recorded location from other than the latestrecorded location from the list of recorded locations (x(1), x(2), . . ., x(n−2), x (n−1), x(n),). In other words, the position engine 204selects any recorded location from x(1) to x(n−1) and sets the selectedlocation as the current location of the airplane 102. For example, theposition engine 204 may select a location x(n−1) or a location x(n−2),and set the selected location as the current location of the airplane102.

Further, using the latest recorded location x(n) and the currentlocation of the airplane 102 (e.g., x(n−1), x(n−2), etc.), the positionengine 204 determines the direction of the airplane. For example, if thecurrent location of the airplane, i.e., x(n−1) is (X, Y) and the latestrecorded location of the airplane 102, i.e., x(n) is (X+1, Y+1), then,the position engine 204 may determine that the airplane 102 is headingin a north-east direction, provide locations (X,Y) and (X+1,Y+1) werelocations on a Cartesian coordinate plane. One of ordinary skill in theart can understand and appreciate that the Cartesian coordinate valuesused in the above example is for explanatory purposes and are notlimiting. In other words, in reality, the location of an airplane 102may be represented by geometric coordinates (e.g., latitude andlongitude values) and not Cartesian coordinates.

The process of selecting and setting a recorded location other than thelatest recorded location as the current location of the airplane 102allows the application engine 101 to provide a more accurate locationand direction of the airplane. On the contrary, if the latest recordedlocation, i.e., x(n) is set as the current location of the airplane 102,the position engine 204 will have to estimate or guess the direction ofthe airplane 102, which may result in errors. Accordingly, selecting andsetting a recorded location other than the latest recorded location asthe current location of the airplane 102 provides accuracy and removesany ambiguity.

Once the current location, direction, flight path, and/or pollinginterval are calculated, the position engine 204 returns to operation408 illustrated in FIG. 4. Turning back to FIG. 4, in operation 408, theapplication engine 101 is configured to generate a flight status view1400 a/1400 b (shown in FIGS. 14A and 14B) for presentation to a user(108, 118) via an output medium of the personal computing device 106.Operation 408 is described below in greater detail in association withFIG. 5.

Turning to FIG. 5, this figure is a flowchart that illustrates anexample method associated with the generation of the flight status viewbased on data received via an in-flight Internet service system inaccordance with an example embodiment. In operation 502, the map displayengine 212 may operate in concert with the request generation engine 202to generate a map request and transmit the map request to a map servicesystem 122 on the ground. As described above in association with FIG. 2,the map request may include at least the calculated current location ofthe airplane 102, the altitude of the airplane, form factor or thepersonal computing device, and/or zoom parameters. However, one ofordinary skill in the art can understand and appreciate that the maprequest can include any additional appropriate parameters that assistwith rendering a map image without departing from a broader scope ofthis disclosure.

Responsive to receiving the map request, the map service system 122 mayretrieve and transmit map data to the personal computing device 106 viathe Internet. In operation 504, the input/output engine 238 of thepersonal computing device 106 may receive and/or store the map data in amemory 220 of the personal computing device 106.

In operation 506, the social network services engine 216 and/or thecontent retrieval engine 218 may operate in concert with the requestgeneration engine 202 to generate a content request and transmit thecontent request to the social network service system 124 and/or the oneor more information sources 126 on the ground. In particular, the socialnetwork services engine 216 and/or the content retrieval engine 218 maygenerate separate content requests. The content request generated by thesocial network services engine 216 may be transmitted to the socialnetwork services engine 124 on the ground, and the content requestgenerated by the content retrieval engine 218 may be transmitted to theone or more information sources 126 on the ground. As described above inassociation with FIG. 2, the content request generated by the socialnetwork services engine 216 and/or the content retrieval engine 218 mayinclude at least the calculated current location of the airplane 102 anda set of filter parameters. The set of filter parameters may include atleast a limit on the number of data elements that are to be returned inresponse to the content request and/or a distance limit. However, one ofordinary skill in the art can understand and appreciate that the contentrequest generated by the social network services engine 216 and/or thecontent retrieval engine 218 can include any other appropriateparameters without departing from a broader scope of this disclosure.

In one example embodiment, the user (108, 118) has to be logged into theuser's social network account for receiving social network features inthe interactive flight status display. For example, to receive featuresassociated with Facebook®, the user has to be logged into his/herFacebook account. Accordingly, in addition to the current location ofthe airplane and the set of filter parameters, the content requestgenerated by the social network services engine 216 may include usercredentials associated with the user's social network account. In saidexample embodiment, if the user is not logged into the user's socialnetwork account, the application engine 101 may prompt the user to loginto the user's social network account.

Responsive to receiving the content request, the social network servicessystem 124 and the one or more information sources 126 may transmitsocial network data and informative data to the personal computingdevice 106, respectively. In operation 508, the input the input/outputengine 238 of the personal computing device 106 may receive and/or storethe social network data and the informative data in a memory 220 of thepersonal computing device 106. As described above in association in FIG.2, the social network data and/or informative data may include one ormore data elements based on the data limit included in the contentrequest. In one example, each data element of the social network dataand/or the informative data may include a header and body. The headermay include a title or a metadata identifying the content represented bythe data element, and the body of the data element may include at aportion of the content, a hyperlink to the content, and/or geographiccoordinates associated with each data element.

In one example embodiment, the informative data that is received inresponse to the content request may vary based on whether the user (108,118) is logged in as a member or as a guest. If the user (108, 118) islogged in as a guest, the informative data may include generallyavailable information, such as information about landmarks, points ofinterest, and so on (e.g., information from Wikipedia®, Panoramio®,Google®, etc.,). On the contrary, if the user is logged in as a member,the application engine 101 retrieves a member profile of the user anddetermine additional information associated with the user (108, 118),such as user's likes and dislikes, user's preferences, locations towhich the user has traveled in the past, events that the user hasattended, loyalty points accrued by the user, user's hobbies, and so on.Further, using the additional information associated with the user (108,118), the informative data may be customized and personalized to theuser (108, 118). Accordingly, in addition to the current location of theairplane and the set of filter parameters, the content request generatedby the content retrieval engine 218 may include an identifier thatindicates if the user (108, 118) is logged in as a member or a guestand/or user credentials associated with the user's member status, andadditional user information if the user is a member.

In one example, if a user is logged in a Delta SkyMiles member, theinformative data returned by the one or more information sources 126 mayinclude, but is not limited to, Delta SkyMiles Dining locations(locations of restaurants at the destination that participate in theSkyMiles program), Delta Partner benefits information (car, hotel,vacation miles earning opportunities at the destination), sports andlifestyle information (content that is personally relevant from SkyMilespartnership offers available at relevant destinations for the customertrip, e.g., Broadway shows, Chelsea® football club events atdestination, ‘Uber’ like opportunity for ground transportation or eventat the destination for anyone who is traveling on a Delta flight, and soon. Additionally, the generally available information may also be madeavailable to the user (108, 118) that is logged in as a member.

In operation 510, the application engine 101 forwards the received mapdata to the graphics rendering engine 230. Upon receiving the map data,in operation 510, the graphics rendering engine may render a map imageof the terrestrial area over which the airplane is flying correspondingto its current position. FIGS. 14A and 14D illustrate an example mapimage 1402 rendered by the graphics rendering image 230. Operation 510is described in greater detail in association with FIG. 11.

Turning to FIG. 11, this figure is a flowchart that illustrates anexample method of rendering a map view for the interactive flight statusdisplay in accordance with an example embodiment. In operation 1102, theuser device and network determination engine 232 determines if thetechnical specifications of the personal computing device 106 meets oneor more requirements for rendering a three-dimensional image. If thetechnical specifications meet the one or more requirements, in operation1106, the graphics rendering engine 230 may operate in concert with theprocessor 222 of the personal computing device to apply a coordinatetransformation to the received map data for tilting the map image inorder to provide a three-dimensional effect to the map image. Thecoordinate transformation may be applied along one or more of the x, y,and z coordinate. One of ordinary skill in the art can understand andappreciate that any other appropriate methods may also be used togenerate a three dimensional image. In some embodiments, when networkbandwidth is not scarce, the received map data may include a threedimensional map image that need not be subject to transformations.However, if the technical specifications meet the one or morerequirements, in operation 1104, the graphics rendering engine 230 mayrender a two-dimensional map image. Once the tilted map image or the twodimensional map image is rendered, the graphics rendering engine 230returns to operation 512 of FIG. 5.

Returning to FIG. 5, in operation 512, the graphics rendering engine 230may receive the flight position data and the current position of theairplane. Responsively, the graphics rendering engine 230 maycommunicate with the flight path engine 208 to determine a flight pathof the airplane based on the flight position data. Once the flight pathdata is determined, in operation 512, the graphics rendering engine 230may render an image of a flight path, e.g., flight path 1404 illustratedin FIGS. 14A and 14D. The image of the flight path may include ageometric figure, such as a line or a curve that passes through one ormore of the recorded locations of the airplane 102. In addition torendering the flight path image 1404, the graphics rendering engine 230may render an image representative of an airplane and an imagerepresentative of a shadow of the airplane, e.g., airplane image 1406 aand shadow image 1406 b. The image of the airplane 1406 a may be locatedwithin the map image 1402 at a point that corresponds to the currentlocation of the airplane 102 in the air. Further, the image of theshadow of the airplane 1406 b may be located within the map image 1402at a point that corresponds to a terrestrial location associated withthe current location of the airplane 102. One of ordinary skill in theart can understand and appreciate that the airplane image 1406 aillustrated in FIGS. 14A and 14D is not limiting, and any otherappropriate image can be used to represent a current position of theairplane without departing from a broader scope of this description. Inan example embodiment, the graphics rendering engine 230 may beconfigured to overlay the flight path image 1404, the airplane image1406 a, and the shadow image 1406 b on top of the map image 1402 asillustrated in FIGS. 14A and 14D.

Further, in operation 514, the graphics rendering engine 230 may receivesocial network data and informative data. Responsively, the graphicsrendering engine 230 may communicate with the visual indicator engine224 to render a visual indicator image for each data element of thesocial network data and informative data. In an example embodiment, eachdata element of the social network data and informative data may becategorized based on a source of the data element. Further, dataelements of different groups may be assigned different visual indictorimages to distinguish between data elements of different groups. Inother words, all data elements of one group may be assigned one type ofvisual indicator image, while all data elements of another group may beassigned another type of visual indicator image. In some embodiments,the visual indicator images may be designed such that a user canrecognize the source of the data element based on the visual identifierimage. For example, each data element associated with Facebook® may beassigned a visual identifier image that includes a Facebook® logo, whileeach data element associated with Wikipedia® may be assigned a visualidentifier image that includes a Wikipedia® logo, as illustrated inFIGS. 14A and 14D. In particular, FIGS. 14A and 14D illustrate aFacebook® visual indicator 1416 (visual indicator representing socialnetwork data) and a Wikipedia®/Panoramio® visual indicator 1414 (visualindicator representing informative data). However, one of ordinary skillin the art can understand and appreciate that any other type or form ofvisual indicators may be used without departing from a broader scope ofthis disclosure. For example, element 1422 illustrated in FIGS. 14A and14D is another example visual indicator that represents proprietaryinformation, such location information curated and customized by aprivate party (e.g., curated by Delta from Delta specific magazines,articles, and so on).

In one example embodiment, each data element of the social network dataand the informative data may include a geographic coordinate associateddata element. Accordingly, the graphics rendering engine 230 may belocate each visual indicator image at a point on the map image thatcorresponds to the geographic coordinate of data element represented bythe visual indicator image, as illustrated by elements 1416 and 1414 inFIGS. 14A and 14D. Further, each visual indicator image may be madeselectable. A user (108, 118) may select a visual indicator using aninput member of the personal computing device 106, such as by touch, amouse, stylus, etc. In one example embodiment, when the user selects avisual indicator, the user (108, 118) may be transferred to a websitethat includes content associated with the data represented by theselected visual indicator. Alternatively, in another example embodiment,when the user selects a visual indicator, the user (108, 118) may bepresented with a pop-up window that includes content associated with thedata represented by the selected visual indicator, as illustrated byelements 1446, 1444, 1456, 1454 in FIG. 14E. The pop-up window may ormay not be presented within the flight status view 1400 a/1400 b. Insome embodiments, the content may be customized for the interactiveflight status display based on information associated with the user(108, 118), a display form factor of the personal computing device 106,and so on. In particular, FIG. 14E illustrates example pop-up windows,such pop-up window with Facebook® related content 1446, a pop-up windowwith Wikipedia® related content 1444, a pop-up window with Twitter®related content 1456, and a pop-up window with Panoramio® relatedcontent 1454.

In operation 516, the graphics rendering engine 230 may communicate withthe flights statistics engine 214 to render an image that representsflights statistics information using flight position data, and thecurrent airplane position data, e.g., flight statistics image 1418 ofFIG. 14A. As illustrated in FIG. 14A, the flight statistics image 1418may textually present at least a current location of the airplane 102, adirection (bearing) of the airplane 102, a flight number, and/or adeparture/arrival location pair. In addition to the flight statisticsimage, in operation 516, the graphics rendering engine 230 may render aselectable image that provides a user with an option to post and/orshare information on one or more social network platforms, e.g.,Facebook® share option 1420 as illustrated in FIG. 14A.

Further, in operation 518, the graphics rendering engine 230 may operatein concert with the progress slider engine 226 to generate an image of aprogress indicator bar with a slider as illustrated by elements 1408,1410, and 1428 of FIGS. 14A and 14D. In particular, a highlightedportion 1090 of the progress indicator bar 1408 may indicate apercentage of travel that has been completed by the airplane 102.Further, as illustrated in FIGS. 14A and 14D, the progress indicator bar1408 may indicate a total estimated travel time of the airplane for atravel between the departure and arrival locations. The progressindicator bar 1408 may also indicate an elapsed time from a time ofdeparture of the airplane 102. Furthermore, the progress indicator bar1408 may include an option 1410 for the user (108, 118) to switch backto a traditional flight tracking view.

In one example embodiment, the graphics rendering engine 230 may beconfigured to appropriately stack two or more of the rendered images topresent one comprehensive image, e.g., comprehensive flight status view1400 a/1400 b to the user (108, 118) as illustrated in FIGS. 14A and14D. In another example embodiment, the graphics rendering engine 230may be configured to present each image in separate windows as differentcomponents. Further, one of ordinary skill in the art can understandappreciate that the flight status view described above is an exampleflights status view and is not limiting. That is, some of the renderedimages may be omitted from the flight status view or any additionalimages representing any other appropriate data may be rendered and addedto the flight status view without departing from a broader scope of thisdisclosure.

Once the flight status view is generated, the application engine 101 mayreturn to operation 410 of FIG. 4. Turning back to FIG. 4, in operation410, the polling engine 206 may be configured to periodically update theflight status view 1400 a/1400 b of the airplane 102 based on an updatedcurrent position of the airplane 102. The rate at which the flightstatus view 1400 a/1400 b of the airplane 102 is updated may depend onthe polling interval. Operation 410 is described in greater detail inassociation with FIG. 6.

Turning to FIG. 6, this figure is a flowchart that illustrates a processof updating the flight status view in accordance with an exampleembodiment. In operation 602, at each polling interval, polling engine206 may check if the airplane 102 has completed its current flight.However, in operation 602, if the polling engine 206 determines that theairplane 102 has not completed its current flight, the polling engine206 proceeds to operation 604, where the polling engine 206 operates inconcert with the request generation engine 202 to generate a subsequentflight locate request. Further, in operation 604, the subsequent flightlocate request may be transmitted to the flight status server 120 overthe Internet 110 via the in-flight Internet service system 104.Responsive to transmitting the subsequent flight locate request, inoperation 606, the personal computing device 106 may receive and storean updated flight position data in the memory 220 of the personalcomputing device 106. As described above in association with FIG. 2, theupdated flight position data may include only the last recordedlocation, altitude, and/or speed of the airplane 102 instead of a listof recorded locations, altitudes, and/or speeds received in response toan initial flight locate request.

After receiving and storing the updated flight position data, inoperation 608, the position engine 204 may calculate an updated currentposition of the airplane 102. In particular, the position engine 204 mayretrieve a list of recorded locations that stored in the memory 220(including the last recorded location associated with the updated flightposition data). Further, the position engine 204 may scan the list ofrecorded locations that stored in the memory 220 to identify a locationthat is recorded subsequent to the recording of the location that is setas the current location of the airplane 102. The location may beidentified based on the timestamp associated with the location.Responsive to identifying a location that is recorded subsequent to therecording of the location that is set as the current location of theairplane 102, the position engine 204 may set the identified location asthe updated current location of the airplane 102. Furthermore, based onthe updated current location and the last recorded location of theairplane 102, the position engine 204 may calculate an updated currentdirection of the airplane 102 and the updated flight path of theairplane 102.

Responsive to calculating the updated current position of the airplane102, in operation 610, the application engine 101 may repeat operations502-518 or FIG. 5 using the updated current position of the airplane 102to generate an update flight status view that reflects the updatedcurrent position of the airplane 102. Once the updated flight statusview is generated, the application engine 101 returns to operation 602where the polling engine continues to check if the airplane 102 hascompleted its current flight. In other words, the flight status view isperiodically updated till the airplane 102 completes its current flight.However, one of ordinary skill in the art can understand and appreciatethat the condition of the airplane completing its current flight may bereplaced by any other appropriate conditions without departing from abroader scope of this disclosure. For example, the operation ofperiodically updating the flight status view may be terminated uponreaching a pre-determined time interval from the time of departure ofthe airplane. In another example, the operation of periodically updatingthe flight status view may be terminated upon reaching a pre-determinedtime interval from an estimated time of arrival of the airplane (e.g.,prior to landing). In yet another example, the operation of periodicallyupdating the flight status view may be terminated when the airplane 102reaches a pre-determined location.

Returning to operation 602, if the airplane 102 has completed itscurrent flight, the application engine returns to operation 412 of FIG.4, the interactive flight status display is terminated and the processends.

In one example, an airplane B records its location at 9:58 am as (X,Y),and at 10:00 am as (X+1, Y+1). These locations may be recorded by theonboard tracking system 107 and transmitted to the flight status server120. Accordingly, the above mentioned locations and the time of theirrecording may be stored in the flight status server 120. In saidexample, an application engine 101 residing in a personal computingdevice 106 may be located onboard airplane B. At 10:01 am, theapplication engine 101 may generate and transmit an initial flightlocate request to the flight status server 120.

Responsive to receiving the initial flight locate request, the flightstatus server 120 may return flight position data to the applicationengine 101. The flight position data may include two data points(elements): 1) Location (X,Y)—9:58 am, and 2) Location (X+1,Y+1)—10:00am. Upon receiving the flight position data, the application engine 101may set the current location as a location other than the latestrecorded location. The last recorded location in the flight positiondata is location (X+1,Y+1) recorded at 10:00 am. Accordingly, theapplication engine 101 sets the current location as location (X,Y)recorded at 9:58 am. In addition, the polling interval may be calculatedbased on the average time difference between subsequent recordings ofthe airplane's locations/positions. Accordingly, in said example thepolling interval is 2 minutes.

The application engine 101 may cache (store) the polling interval andflight position data, i.e., location (X,Y) recorded at 9:58 am, andlocation (X+1,Y+1) recorded at 10:00 am in the memory 220 of thepersonal computing device 106. Once the current position of the airplane102 and the polling interval is determined, the application engine 101generates and displays a flight status view using the personal computingdevice 106.

Continuing with the example, once the flight status view is generated,at each polling interval, i.e., every 2 minutes from the generation ofthe last flight locate request, the polling engine 206 may check ifairplane B has completed its flight. In said example, at 10:03 am whichis 2 minutes past the last flight locate request at 10:01 am, thepolling engine 206 may check if airplane B has completed its flight.Assuming that airplane B has not completed its flight, the pollingengine 206 operates in concert with the request generation engine 202 togenerate a subsequent flight locate request at 10:03 am.

In the meantime, the onboard tracking system 107 of airplane B may haverecorded and transmitted another location of the airplane B at 10:02 amto the flight status server 120, provided that the average timedifference between each recording is 2 minutes. Accordingly, in responseto the flight locate request at 10:03 am, the flight status server 120may transmit the last recorded location prior to the time of thesubsequent flight locate request at 10:03 am. At 10:03 am, the lastrecorded location available at the flight status server 102 is thelocation recorded at 10:02 am. In said example, the location recorded at10:02 am is (X+2,Y+2). The last recorded location may be transmitted tothe personal computing device 106 as an updated flight position data.The personal computing device 106 stored the updated flight positiondata in the memory 220. Accordingly, at 10:03 am, the memory 220 of thepersonal computing device 106 may include three recorded locations,i.e., location (X,Y) recorded at 9:58 am, location (X+1,Y+1) recorded at10:00 am, and location (X+2,Y+2) recorded at 10:02 am.

Continuing with the example, after receiving the updated flight positiondata, the application engine 101 may calculate the airplane B's updatedcurrent position. To calculate the updated current location, theapplication engine determines a timestamp associated with the locationthat is set as the current location, i.e., location (X,Y). The timestamp indicates that the location (X,Y) that is presently set as thecurrent location is 9:58 am. Then, the application engine 101 scansthrough the list of recorded locations stored in the memory 220, i.e.,location (X,Y) recorded at 9:58 am, location (X+1,Y+1) recorded at 10:00am, and location (X+2,Y+2) recorded at 10:02 am. Responsive to scanning,the application engine 101 identifies a location that is recordedsubsequent to the recording of the location (X,Y) that is presently setas the current location. The location the is recorded subsequent to therecording of location (X,Y) is location (X+1,Y+1) that was recorded at10:00 am. The identified location, i.e., location (X+1,Y+1) is set asthe updated current location despite of having a more recent recordedlocation, i.e., location (X+2,Y+2) recorded at 10:02 am. This increasesthe accuracy of the airplane positions displayed by the applicationengine 101 because, at any given time, the application engine 101 knowsat least one next location of the airplane that follows the currentlocation/updated current location of the airplane. Once the updatedcurrent location and direction of airplane B is determined, theapplication engine repeats the step of generating the flight status viewusing the updated current location and direction of airplane B.

FIGS. 7-9 are flowcharts that illustrate an example method of generatingand presenting the interactive flight status display to a user 118 onthe ground based on data received via a ground Internet service system114. The operations illustrated of FIGS. 7 and 9 are mostly similar totheir matching respective operations of FIGS. 4 and 6, respectively,except that in each operation of FIGS. 7 and 9, the application engine101 receives and transmits data over the Internet 110 via the groundInternet service system 114. Accordingly, FIGS. 7 and 9 will not bedescribed herein for brevity and to avoid repetition. Similarly, theoperations 802-814, and 818 of FIG. 8 are mostly similar to theirmatching respective operations 502-514, and 518 of FIG. 5, except thatin operations 802-814, and 818, the application engine 101 receives andtransmits data over the Internet via the ground Internet service system114. Accordingly, operations 802-814, and 818 of FIG. 8 will not bedescribed herein for brevity and to avoid repetition. However, operation816 may differ from its respective matching operation 516 of FIG. 5. Inparticular, in operation 816, the graphics rendering engine 230 may notrender a selectable image that provides a user with an option to postand/or share information on one or more social network platforms.Accordingly, the selectable image that provides a user with an option topost and/or share information, e.g., Facebook® share option 1420 may beomitted from a flight status view 1400 b presented to the user 118 onthe ground. FIG. 14B illustrates a flight status view 1400 b that ispresented to the user 118 on the ground. One of ordinary skill in theart can understand and appreciate that any appropriate features may bedeleted or added to the flight status view 1400 b presented to the user118 on the ground, without departing from a broader scope of thisdisclosure. The feature of providing an option to the user to postand/or share data on a social network platform is described below ingreater detail in association with FIG. 12.

Turning to FIG. 12, this figure is a flowchart that illustrates anexample method of sharing data on a social network platform via theinteractive flight status display in accordance with an exampleembodiment. FIG. 12 will be discussed, making exemplary references toFIGS. 14A, 14B, and 14C as may be appropriate or helpful. In operation1202, the application engine 110 may operate in conjunction with theinput/output engine 238 of the personal computing device 106 to check ifthe user has selected the social network share/post image 1420 (shown inFIG. 14A). In other words, the application engine 101 determines if theuser has opted to share and/or post data on one or more social networkplatforms through the interactive flight status display. If the user hasnot opted to share and/or post data on one or more social networkplatforms, the application engine 101 may continue waiting till the useropts to share and/or post data on one or more social network platformsthrough the interactive flight status display. Upon determining that theuser has opted to share and/or post data on one or more social networkplatforms, in operations 1204 and 1206, the application engine 101 maygenerate and display a preview image along with options to change animage, e.g., preview image 1426 and options 1428-1430 as illustrated inFIG. 14B.

Turning to FIG. 14B, this figure illustrates a preview image associatedwith a social network sharing/posting feature of the interactive flightstatus display in accordance with an example embodiment. In one exampleembodiment, the preview image 1426 may include a flight informationimage 1427 by default, as illustrated in FIG. 14B. The flightinformation image 1427 may provide the current position, the currentdirection, the percentage of travel completed by the airplane, and otherdetails associated with the flight, such as flight identifier number,arrival/destination port, and so on. In addition, the preview image 1426may include one or more selectable options 1428-143 as illustrated inFIG. 14B. The first option 1428 may allow the user 108 to select theflight information image 1427 for posting and/or sharing on the one ormore social network platforms. The second option 1430 may allow the user108 to select an image captured by the personal computing device 106 forposting and/or sharing on the one or more social network platforms. Thethird option 1432 may allow the user 108 to select an image stored inthe personal computing device 106 for posting and/or sharing on the oneor more social network platforms. One of ordinary skill in the art canunderstand and appreciate that the additional options may be included inthe preview image 1426.

In one example embodiment as illustrated in FIG. 14B, the preview image1426 may include the flight information image 1427 by default.Accordingly, the option 1428 to select the flight information image 1427for posting and/or sharing on the one or more social network platformsis disabled, as illustrated in FIG. 14B. If the user 108 desires toreplace the flight information image 1427 with an image captured usingthe personal computing device 106 or an image stored in the personalcomputing device 106, the user 108 may do so by selecting options 1430or 1432, respectively. Further, as illustrated in FIG. 14B, the previewimage 1426 may include another option 1429 (e.g., the ‘Next’ button)that allows the user 108 to proceed with posting the selected image toone or more social network platforms. Accordingly, after the user hasselected the image that the user wants to post, the user 108 may selectthe option 1429 to proceed with posting the selected image.

Responsive to selecting the option to proceed with posting an image onone or more social network platforms, in operation 1208, the applicationengine 101 generates and displays a message interface to the user 108,e.g., message interface 1434 as illustrated in FIG. 14C. Turning to FIG.14C, this figure illustrates a message interface associated with asocial network sharing/posting feature of the interactive flight statusdisplay in accordance with an example embodiment. In particular, themessage interface 1434 may include a portion 1438 that presents theflight information image; the image captured using the personalcomputing device 106; the image stored in the personal computing device106; and/or any image selected by the user in operation 1206, i.e., thepreview image mode illustrated in FIG. 14B. Further, the messageinterface 1434 may include a portion 1436 that presents a user enteredmessage. In particular, a user 108 may be provided with an option toenter a message that is to be posted or shared on the one or more socialnetwork platforms. The message may be inputted through a softwarekeyboard (touchscreen keypad), a hardware keyboard native to thepersonal computing device 106, or an external keyboard. In addition tothe user entered message, the message interface 1434 may include amessage that is automatically populated by the application engine 101.In one example, the message that is automatically populated may includethe name of the airline that the user is flying on, a destination name,and so on. Additionally, in one example embodiment, the messageinterface 1434 may include an option 1037 to tag friends. Upon selectingthe option 1037, the user may be provided with a list of social networkfriends. Responsively, the user may choose one or more friends fortagging to the message. On the basis of the number of friends selectedby the user, the message interface may present a count of the number offriends tagged to the message. Finally, the user may select option 1039to push the message to the social network platform for posting and/orsharing. Responsive to selection the option to push the message to thesocial network platform, in operation 1210, the application engine 101may transmit the message to one or more social network platforms.Consequently, the message may be posted or shared on the one or morenetwork platforms.

One of ordinary skill in the art can understand and appreciate that thefeatures, the architecture, the layout, and arrangement of the previewimage and the message interface are examples and are not limiting. Thatis, the features, the architecture, the layout, and arrangement of thepreview image and the message interface may vary based on the socialnetwork platform. For example, the features, the architecture, thelayout, and the arrangement of the preview image and/or the messageinterface of FIGS. 14B and 14D are associated with Facebook®. ForTwitter® or Google Plus®, the features, the architecture, the layout,and arrangement of the preview image and the message interface maydiffer from that of Facebook®. Further, even though FIGS. 14B and 14Dillustrate images and messages being posted on a social networkplatform, one of ordinary skill in the art can understand and appreciatethat any other form of data, such as video or audio may also be postedwithout departing from a broader scope of this disclosure.

Turning to FIG. 13, this figure is a flowchart that illustrates aprocess associated with a flight progress slider bar of the interactiveflight status display in accordance with an example embodiment. Inoperations 1302 and 1304, the progress slider engine 226 determine aposition of the slider 1424 to check if the user desires to view afuture position of the airplane 102 or a past position of the airplane102. If the position of the slider 1424 indicates that the user desiresto view a past position of the airplane, the progress slider engine 226proceeds to operation 1306. In operation 1306, the progress sliderengine 226 determines a percentage of travel completed by the airplane102 corresponding to the location of the slider 1424. Further, inoperation 1308, the progress slider engine 226 may determine a timeassociated with the percentage of travel completed by the airplane 102.In one example embodiment, the time may be determined by taking theactual percentage of travel completed by the airplane 102 and dividingthat by the percent location of the slider 1424. Then, using the timeassociated with the percentage of travel completed, in operation 1310,the progress slider engine 226 may retrieve, from the list of locationsthat are cached in the memory, a location corresponding to thecalculated time.

Responsive to obtaining a location corresponding to the slider position1424, the progress slider engine 226 may determine if the personalcomputing device is connected to the Internet via the in-flight Internetservice system 104 or the ground Internet service system 114. If thepersonal computing device is connected to the Internet via the in-flightInternet service system 104, in operation 1312, the progress sliderengine 226 may execute operations 502-508 using the locationcorresponding to the slider position 1424. Alternatively, if thepersonal computing device is connected to the Internet via the groundInternet service system 104, in operation 1312, the progress sliderengine 226 may execute operations 802-808 using the locationcorresponding to the slider position 1424.

Responsive to executing operations 502-508 or 802-808, the positionslider engine 226 receives map data, social network data, and/orinformative data. Using the received data and the location correspondingto the slider position 1424, in operation 1314, the progress sliderengine 226 executes operations 810-818 to render a flight status view1400 b that does not include the option to post and/or share data on asocial network platform.

However, in operation 1304, if the position of the slider 1424 indicatesthat the user desires to view a future position of the airplane, theprogress slider engine 226 may proceeds to operation 1316. In operation1316, the progress slider engine 226 may estimate a future location ofthe airplane corresponding to the location of the slider 1424. In oneembodiment, the progress slider engine 226 may use a mathematical and/ora geometric model to determine the future location of the airplanecorresponding to the location of the slider 1424. The input to themathematical and/or geometric model may include, but is not limited tothe flight path of the airplane, the current location of the airplane, adestination, and a percentage of the travel corresponding to thelocation of the slider 1424. In another embodiment, the progress sliderengine 226 may determine the future location of the airplane using aplanned path. In yet another embodiment, upon determining that the userdesires to view a future position of the airplane, the progress sliderengine 226 may set the future location as the destination point to whichthe airplane 102 is travelling.

Responsive to estimating the future location, the progress slider engine226 may determine if the personal computing device is connected to theInternet via the in-flight Internet service system 104 or the groundInternet service system 114. If the personal computing device isconnected to the Internet via the in-flight Internet service system 104,in operation 1318, the progress slider engine 226 may execute operations502-508 using the estimated future location. Alternatively, if thepersonal computing device is connected to the Internet via the groundInternet service system 104, in operation 1318, the progress sliderengine 226 may execute operations 802-808 using the estimated futurelocation.

Responsive to executing operations 502-508 or 802-808, the positionslider engine 226 receives map data, social network data, and/orinformative data. Using the received data and the estimated futurelocation, in operation 1320, the progress slider engine 226 executesoperations 810-818 to render a flight status view 1400 b that does notinclude the option to post and/or share data on a social networkplatform.

Although the present embodiments have been described with reference tospecific example embodiments, it will be evident that variousmodifications and changes may be made to these embodiments withoutdeparting from the broader spirit and scope of the various embodiments.For example, the various devices and modules described herein may beenabled and operated using hardware circuitry (e.g., CMOS based logiccircuitry), firmware, software or any combination of hardware, firmware,and software (e.g., embodied in a machine readable medium). For example,the various electrical structures and methods may be embodied usingtransistors, logic gates, and electrical circuits (e.g., applicationspecific integrated (ASIC) circuitry and/or in Digital Signal Processor(DSP) circuitry).

The terms “invention,” “the invention,” “this invention,” and “thepresent invention,” as used herein, intend to refer broadly to alldisclosed subject matter and teaching, and recitations containing theseterms should not be misconstrued as limiting the subject matter taughtherein or to limit the meaning or scope of the claims. From thedescription of the exemplary embodiments, equivalents of the elementsshown therein will suggest themselves to those skilled in the art, andways of constructing other embodiments of the present invention willappear to practitioners of the art. Therefore, the scope of the presentinvention is to be limited only by the claims that follow.

In addition, it will be appreciated that the various operations,processes, and methods disclosed herein may be embodied in amachine-readable medium and/or a machine accessible medium compatiblewith a data processing system (e.g., a computer system), and may beperformed in any order (e.g., including using means for achieving thevarious operations). Accordingly, the specification and drawings are tobe regarded in an illustrative rather than a restrictive sense.

What is claimed is:
 1. An application engine comprising: a requestgeneration engine configured to receive flight position data associatedwith an airplane through a global computing network, the flight positiondata comprising at least a list of recorded locations of the airplaneand a timestamp associated with each recorded location in the list; aposition engine configured to compute a current position of the airplaneand a polling interval based on the list of the recorded locations ofthe airplane, wherein the position engine is configured to: select, fromthe list of recorded locations, a recorded location other than a latestrecorded location; setting the selected recorded location as the currentlocation of the airplane; calculate a direction of the airplane usingone or more recorded locations from the list of recorded locations andthe selected location; calculate, based on the timestamps associatedwith each recorded location, an average time difference between a timeof recording of subsequent locations in the list of recorded locations;and set the average time difference as the polling interval; a graphicsrendering engine configured to generate a flight status view of theairplane based on the current position of the airplane, wherein theflight status view is rendered on a computing device; and a pollingengine configured to periodically update the flight status view of theairplane using an updated current position of the airplane, wherein thepolling interval determines a rate at which the flight status view isupdated.
 2. The application engine of claim 1, wherein the flight statusview comprises: a flight tracker image that is representative of thecurrent position of the airplane and a flight path of the airplane; andone or more visual indicators, each visual indicator representative ofat least one of a social network data and an informative data associatedwith the current position of the airplane.
 3. The application engine ofclaim 2, wherein to generate the flight status view, the graphicsrendering engine is configured to: receive map data associated with anarea corresponding to the current position of the airplane, the map datais received from a map service system over the global computer networkin response to a map request; receive at least one of social networkdata and informative data associated with the area corresponding to thecurrent position of the airplane, the at least one of the social networkdata and informative data is received from one or more social networkservice systems and information sources over the global computer networkin response to a content request; based on the map data, the flightposition data, and the current position of the airplane, render theflight tracker image; and based on the at least one the social networkdata and the informative data render one or more visual indicators, eachvisual indicator representative of at least one of the social networkdata and the informative data associated with the current position ofthe airplane.
 4. The application engine of claim 1, wherein the flightstatus view comprises an image representative of a percentage of travelcompleted by the airplane.
 5. The application engine of claim 3, whereinthe image representative of the percentage of travel completed by theairplane is a progress indicator bar with a slider that is controllableby a user to view at least one of a past position of the airplane and afuture position of the airplane.
 6. The application engine of claim 1,wherein to render the flight tracker image, the graphics renderingengine is configured to: render a first image representative of a map ofan area corresponding to the current position of the airplane; render asecond image representative of the flight path of the airplane; render athird image representative of the current position of the airplane, andan image representative of a percentage of travel completed by theairplane.
 7. The application engine of claim 1, further comprising: anetwork determination engine configured to determine one or moretechnical specifications associated with a display of the computingdevice, wherein a complexity of the flight status view is adjusted basedon the one or more technical specifications of the computing device, andwherein the complexity is representative of a number of dimensions inwhich the flight status view is displayed.
 8. A method comprising:receiving, by an application engine, flight position data associatedwith an airplane through a global computing network, the flight positiondata comprising at least a list of recorded locations of the airplaneand a timestamp associated with each recorded location in the list;computing, by the application engine, a current position of the airplanebased on the list of the recorded locations of the airplane, whereincalculating the current position comprises: selecting, from the list ofrecorded locations, a recorded location other than a latest recordedlocation; setting the selected recorded location as the current locationof the airplane; and determining a direction of the airplane using oneor more recorded locations from the list of recorded locations;computing, by the application engine, a polling interval based on thelist of the recorded locations of the airplane, wherein computing thepolling interval comprises: calculating, based on the timestampsassociated with each recorded location, an average time differencebetween a time of recording of subsequent locations in the list ofrecorded locations; and setting the average time difference as thepolling interval; based on the current position of the airplane,generating, by the application engine, a flight status view of theairplane for display, wherein the flight status view is rendered on acomputing device; and periodically updating, by the application engine,the flight status view of the airplane using an updated current positionof the airplane, wherein the polling interval determines a rate at whichthe flight status view is updated.
 9. The method of claim 8, wherein theflight status view comprises: a first image representative of a map ofan area corresponding to the current position of the airplane; a secondimage representative of a flight path of the airplane; a third imagerepresentative of the current position of the airplane; and one or morevisual indicators, each visual indicator representative of at least oneof a social network data and informative data associated with thecurrent position of the airplane.
 10. The method of claim 8, wherein theflight status view comprises an image representative of a percentage oftravel completed by the airplane.
 11. The method of claim 10, whereinthe image representative of a percentage of travel completed by theairplane is a progress indicator bar with a slider that is controllableby a user to view at least one of a past position of the airplane and afuture position of the airplane.
 12. The method of claim 8, wherein theglobal computer network is Internet, and wherein the global computernetwork is accessible via one of an in-flight Internet service systemand a ground Internet service system.
 13. The method of claim 8, whereingenerating the flight status view comprises: receiving map dataassociated with an area corresponding to the current position of theairplane, the map data is received from a map service system over theglobal computer network in response to a map request; receiving at leastone of social network data and informative data associated with the areacorresponding to the current position of the airplane, the at least oneof the social network data and informative data is received from one ormore social network service systems and information sources over theglobal computer network in response to a content request; based on themap data, rendering a first image representative of a map of the areacorresponding to the current position of the airplane; based on theflight position data and the current position of the airplane, renderinga second image representative of a flight path of the airplane, a thirdimage representative of the current position of the airplane, and animage representative of a percentage of travel completed by theairplane; and based on the at least one the social network data and theinformative data rendering one or more visual indicators, each visualindicator representative of at least one of a social network data andinformative data associated with the current position of the airplane.14. The method of claim 13, wherein the social network data and theinformative data include at least a geo-code that is used to locatetheir respective visual indicators in the first image.
 15. The method ofclaim 13, wherein the informative data includes at least one of one ormore images, information associated with a location, advertisements, andevents and/or activities.
 16. The method of claim 13, wherein the socialnetwork data includes at least one of a location associated with auser's social network friend and a location that a user's social networkfriend has visited.
 17. The method of claim 13, wherein the socialnetwork data includes at least one of an image, a text, and a videoassociated with a social network platform.
 18. The method of claim 8,further comprising providing an option within the flight status view toshare data on one or more social network platforms.
 19. The method ofclaim 8, further comprising: determining, by the application engine, oneor more technical specifications associated with a display of acomputing device, wherein a complexity of the flight status view isadjusted based on the one or more technical specifications of thecomputing device, and wherein the complexity is representative of anumber of dimensions in which the flight status view is displayed.